cli-extras-0.2.1.0: Miscellaneous utilities for building and working with command line interfaces
Safe HaskellNone
LanguageHaskell2010

Cli.Extras.Types

Synopsis

Documentation

data Output Source #

Instances

Instances details
Eq Output Source # 
Instance details

Defined in Cli.Extras.Types

Methods

(==) :: Output -> Output -> Bool #

(/=) :: Output -> Output -> Bool #

Ord Output Source # 
Instance details

Defined in Cli.Extras.Types

Show Output Source # 
Instance details

Defined in Cli.Extras.Types

Monad m => MonadLog Output (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

logMessageFree :: (forall n. Monoid n => (Output -> n) -> n) -> CliT e m () #

Monad m => MonadLog Output (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

logMessageFree :: (forall n. Monoid n => (Output -> n) -> n) -> DieT e m () #

type CliThrow e m = MonadError e m Source #

putLog :: CliLog m => Severity -> Text -> m () Source #

Log a message to the console.

The message is guaranteed to be logged uninterrupted, even if there are ongoing spinners.

newtype DieT e m a Source #

Constructors

DieT 

Fields

Instances

Instances details
MonadReader r m => MonadReader r (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

ask :: DieT e m r #

local :: (r -> r) -> DieT e m a -> DieT e m a #

reader :: (r -> a) -> DieT e m a #

MonadIO m => MonadError e (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

throwError :: e -> DieT e m a #

catchError :: DieT e m a -> (e -> DieT e m a) -> DieT e m a #

Monad m => MonadLog Output (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

logMessageFree :: (forall n. Monoid n => (Output -> n) -> n) -> DieT e m () #

MonadTrans (DieT e) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

lift :: Monad m => m a -> DieT e m a #

Monad m => Monad (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

(>>=) :: DieT e m a -> (a -> DieT e m b) -> DieT e m b #

(>>) :: DieT e m a -> DieT e m b -> DieT e m b #

return :: a -> DieT e m a #

Functor m => Functor (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

fmap :: (a -> b) -> DieT e m a -> DieT e m b #

(<$) :: a -> DieT e m b -> DieT e m a #

MonadFail m => MonadFail (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

fail :: String -> DieT e m a #

Applicative m => Applicative (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

pure :: a -> DieT e m a #

(<*>) :: DieT e m (a -> b) -> DieT e m a -> DieT e m b #

liftA2 :: (a -> b -> c) -> DieT e m a -> DieT e m b -> DieT e m c #

(*>) :: DieT e m a -> DieT e m b -> DieT e m b #

(<*) :: DieT e m a -> DieT e m b -> DieT e m a #

MonadIO m => MonadIO (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

liftIO :: IO a -> DieT e m a #

MonadThrow m => MonadThrow (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

throwM :: Exception e0 => e0 -> DieT e m a #

MonadCatch m => MonadCatch (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

catch :: Exception e0 => DieT e m a -> (e0 -> DieT e m a) -> DieT e m a #

MonadMask m => MonadMask (DieT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

mask :: ((forall a. DieT e m a -> DieT e m a) -> DieT e m b) -> DieT e m b #

uninterruptibleMask :: ((forall a. DieT e m a -> DieT e m a) -> DieT e m b) -> DieT e m b #

generalBracket :: DieT e m a -> (a -> ExitCase b -> DieT e m c) -> (a -> DieT e m b) -> DieT e m (b, c) #

data CliConfig e Source #

Constructors

CliConfig 

Fields

Instances

Instances details
Monad m => MonadReader (CliConfig e) (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

ask :: CliT e m (CliConfig e) #

local :: (CliConfig e -> CliConfig e) -> CliT e m a -> CliT e m a #

reader :: (CliConfig e -> a) -> CliT e m a #

class Monad m => HasCliConfig e m | m -> e where Source #

Methods

getCliConfig :: m (CliConfig e) Source #

Instances

Instances details
Monad m => HasCliConfig e (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

getCliConfig :: CliT e m (CliConfig e) Source #

HasCliConfig e m => HasCliConfig e (ExceptT e m) Source # 
Instance details

Defined in Cli.Extras.Types

HasCliConfig e m => HasCliConfig e (StateT s m) Source # 
Instance details

Defined in Cli.Extras.Types

(Monoid w, HasCliConfig e m) => HasCliConfig e (WriterT w m) Source # 
Instance details

Defined in Cli.Extras.Types

HasCliConfig e m => HasCliConfig e (ReaderT r m) Source # 
Instance details

Defined in Cli.Extras.Types

newtype CliT e m a Source #

Constructors

CliT 

Fields

Instances

Instances details
MonadIO m => MonadError e (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

throwError :: e -> CliT e m a #

catchError :: CliT e m a -> (e -> CliT e m a) -> CliT e m a #

Monad m => MonadLog Output (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

logMessageFree :: (forall n. Monoid n => (Output -> n) -> n) -> CliT e m () #

Monad m => HasCliConfig e (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

getCliConfig :: CliT e m (CliConfig e) Source #

MonadTrans (CliT e) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

lift :: Monad m => m a -> CliT e m a #

Monad m => MonadReader (CliConfig e) (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

ask :: CliT e m (CliConfig e) #

local :: (CliConfig e -> CliConfig e) -> CliT e m a -> CliT e m a #

reader :: (CliConfig e -> a) -> CliT e m a #

Monad m => Monad (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

(>>=) :: CliT e m a -> (a -> CliT e m b) -> CliT e m b #

(>>) :: CliT e m a -> CliT e m b -> CliT e m b #

return :: a -> CliT e m a #

Functor m => Functor (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

fmap :: (a -> b) -> CliT e m a -> CliT e m b #

(<$) :: a -> CliT e m b -> CliT e m a #

MonadFail m => MonadFail (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

fail :: String -> CliT e m a #

Applicative m => Applicative (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

pure :: a -> CliT e m a #

(<*>) :: CliT e m (a -> b) -> CliT e m a -> CliT e m b #

liftA2 :: (a -> b -> c) -> CliT e m a -> CliT e m b -> CliT e m c #

(*>) :: CliT e m a -> CliT e m b -> CliT e m b #

(<*) :: CliT e m a -> CliT e m b -> CliT e m a #

MonadIO m => MonadIO (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

liftIO :: IO a -> CliT e m a #

MonadThrow m => MonadThrow (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

throwM :: Exception e0 => e0 -> CliT e m a #

MonadCatch m => MonadCatch (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

catch :: Exception e0 => CliT e m a -> (e0 -> CliT e m a) -> CliT e m a #

MonadMask m => MonadMask (CliT e m) Source # 
Instance details

Defined in Cli.Extras.Types

Methods

mask :: ((forall a. CliT e m a -> CliT e m a) -> CliT e m b) -> CliT e m b #

uninterruptibleMask :: ((forall a. CliT e m a -> CliT e m a) -> CliT e m b) -> CliT e m b #

generalBracket :: CliT e m a -> (a -> ExitCase b -> CliT e m c) -> (a -> CliT e m b) -> CliT e m (b, c) #