chiasma-0.12.2.0: lib/Chiasma/Data/SelectParams.hs
module Chiasma.Data.SelectParams where
import Prelude hiding (input, last)
import Chiasma.Class.CmdArgs (CmdArgs (cmdArgs), flag1, option, optionArgs)
import Chiasma.Data.Direction (Direction)
import Chiasma.Data.Target (Target)
data SelectInput =
EnableInput
|
DisableInput
deriving stock (Eq, Show)
instance CmdArgs SelectInput where
cmdArgs = \case
EnableInput -> ["-e"]
DisableInput -> ["-d"]
data SelectMark =
SelectMark
|
SelectUnmark
deriving stock (Eq, Show)
instance CmdArgs SelectMark where
cmdArgs = \case
SelectMark -> ["-m"]
SelectUnmark -> ["-M"]
data SelectParams =
SelectParams {
neighbor :: Maybe Direction,
last :: Bool,
input :: Maybe SelectInput,
mark :: Maybe SelectMark,
title :: Maybe Text,
target :: Target
}
deriving stock (Eq, Show)
instance Default SelectParams where
def =
SelectParams {
neighbor = Nothing,
last = False,
input = Nothing,
mark = Nothing,
title = Nothing,
target = def
}
instance CmdArgs SelectParams where
cmdArgs SelectParams {..} =
optionArgs neighbor
<>
flag1 "-l" last
<>
optionArgs input
<>
optionArgs mark
<>
option "-T" title
<>
cmdArgs target