coformat-0.3.0.0: src/Language/Coformat/Formatter/Failure.hs
{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-}
module Language.Coformat.Formatter.Failure where
import qualified Data.Text as T
import Control.Monad.Except.CoHas
import GHC.Generics
data ExpectedFailure = FormatterSegfaulted T.Text -- kek
deriving (Eq, Show)
data UnexpectedFailure = FormatterFailure
{ errorCode :: Int
, errorOutput :: T.Text
} deriving (Eq, Show)
data Failure = ExpectedFailure ExpectedFailure
| UnexpectedFailure UnexpectedFailure
deriving (Eq, Show, Generic, CoHas ExpectedFailure, CoHas UnexpectedFailure)
failuresAreUnexpected :: Failure -> UnexpectedFailure
failuresAreUnexpected (UnexpectedFailure err) = err
failuresAreUnexpected (ExpectedFailure (FormatterSegfaulted out)) = FormatterFailure 0 out