module Chiasma.Codec.Data.PaneMode where

import Chiasma.Codec (TmuxCodec)
import Chiasma.Data.TmuxId (HasPaneId, PaneId)
import qualified Chiasma.Data.TmuxId as HasPaneId (HasPaneId(paneId))

data PaneMode =
  PaneMode {
    PaneMode -> PaneId
paneId :: PaneId,
    PaneMode -> Text
paneMode :: Text
  }
  deriving (PaneMode -> PaneMode -> Bool
(PaneMode -> PaneMode -> Bool)
-> (PaneMode -> PaneMode -> Bool) -> Eq PaneMode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaneMode -> PaneMode -> Bool
$c/= :: PaneMode -> PaneMode -> Bool
== :: PaneMode -> PaneMode -> Bool
$c== :: PaneMode -> PaneMode -> Bool
Eq, Int -> PaneMode -> ShowS
[PaneMode] -> ShowS
PaneMode -> String
(Int -> PaneMode -> ShowS)
-> (PaneMode -> String) -> ([PaneMode] -> ShowS) -> Show PaneMode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaneMode] -> ShowS
$cshowList :: [PaneMode] -> ShowS
show :: PaneMode -> String
$cshow :: PaneMode -> String
showsPrec :: Int -> PaneMode -> ShowS
$cshowsPrec :: Int -> PaneMode -> ShowS
Show, (forall x. PaneMode -> Rep PaneMode x)
-> (forall x. Rep PaneMode x -> PaneMode) -> Generic PaneMode
forall x. Rep PaneMode x -> PaneMode
forall x. PaneMode -> Rep PaneMode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PaneMode x -> PaneMode
$cfrom :: forall x. PaneMode -> Rep PaneMode x
Generic, TmuxQuery
Text -> Either TmuxDecodeError PaneMode
(Text -> Either TmuxDecodeError PaneMode)
-> TmuxQuery -> TmuxCodec PaneMode
forall a.
(Text -> Either TmuxDecodeError a) -> TmuxQuery -> TmuxCodec a
query :: TmuxQuery
$cquery :: TmuxQuery
decode :: Text -> Either TmuxDecodeError PaneMode
$cdecode :: Text -> Either TmuxDecodeError PaneMode
TmuxCodec)

instance HasPaneId PaneMode where
  paneId :: PaneMode -> PaneId
paneId = PaneMode -> PaneId
paneId