module Chiasma.Data.TmuxError where

import Polysemy.Process.Data.ProcessError (ProcessError)

import Chiasma.Data.CodecError (CodecError (CodecError))
import Chiasma.Data.DecodeError (DecodeError)
import Chiasma.Data.TmuxRequest (TmuxRequest)

data TmuxError =
  ProcessFailed ProcessError
  |
  RequestFailed TmuxRequest [Text]
  |
  DecodeFailed TmuxRequest DecodeError
  |
  NoClients
  |
  NoExe
  deriving stock (TmuxError -> TmuxError -> Bool
(TmuxError -> TmuxError -> Bool)
-> (TmuxError -> TmuxError -> Bool) -> Eq TmuxError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TmuxError -> TmuxError -> Bool
$c/= :: TmuxError -> TmuxError -> Bool
== :: TmuxError -> TmuxError -> Bool
$c== :: TmuxError -> TmuxError -> Bool
Eq, Int -> TmuxError -> ShowS
[TmuxError] -> ShowS
TmuxError -> String
(Int -> TmuxError -> ShowS)
-> (TmuxError -> String)
-> ([TmuxError] -> ShowS)
-> Show TmuxError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TmuxError] -> ShowS
$cshowList :: [TmuxError] -> ShowS
show :: TmuxError -> String
$cshow :: TmuxError -> String
showsPrec :: Int -> TmuxError -> ShowS
$cshowsPrec :: Int -> TmuxError -> ShowS
Show)

codec :: CodecError -> TmuxError
codec :: CodecError -> TmuxError
codec (CodecError TmuxRequest
req DecodeError
err) =
  TmuxRequest -> DecodeError -> TmuxError
DecodeFailed TmuxRequest
req DecodeError
err