iris-0.0.0.0: Haskell CLI framework
Copyright(c) 2022 Dmitrii Kovanikov
LicenseMPL-2.0
MaintainerDmitrii Kovanikov <kovanikov@gmail.com>
StabilityExperimental
PortabilityPortable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Iris.Env

Description

Environment of a CLI app.

Since: 0.0.0.0

Synopsis

Settings for the CLI app

data CliEnvSettings (cmd :: Type) (appEnv :: Type) Source #

Since: 0.0.0.0

Constructors

CliEnvSettings 

Fields

CLI application environment

Constructing

data CliEnv (cmd :: Type) (appEnv :: Type) Source #

CLI application environment. It contains default settings for every CLI app and parameter

Has the following type parameters:

  • cmd — application commands
  • appEnv — application-specific environment; use () if you don't have custom app environment

Since: 0.0.0.0

Constructors

CliEnv 

Fields

Instances

Instances details
MonadReader (CliEnv cmd appEnv) (CliApp cmd appEnv) Source #

Since: 0.0.0.0

Instance details

Defined in Iris.App

Methods

ask :: CliApp cmd appEnv (CliEnv cmd appEnv) #

local :: (CliEnv cmd appEnv -> CliEnv cmd appEnv) -> CliApp cmd appEnv a -> CliApp cmd appEnv a #

reader :: (CliEnv cmd appEnv -> a) -> CliApp cmd appEnv a #

newtype CliEnvException Source #

Since: 0.0.0.0

Instances

Instances details
Exception CliEnvException Source #

Since: 0.0.0.0

Instance details

Defined in Iris.Env

Show CliEnvException Source #

Since: 0.0.0.0

Instance details

Defined in Iris.Env

Eq CliEnvException Source #

Since: 0.0.0.0

Instance details

Defined in Iris.Env

newtype CliEnvError Source #

Since: 0.0.0.0

Constructors

CliEnvToolError ToolCheckResult

Since: 0.0.0.0

Instances

Instances details
Show CliEnvError Source #

Since: 0.0.0.0

Instance details

Defined in Iris.Env

Eq CliEnvError Source #

Since: 0.0.0.0

Instance details

Defined in Iris.Env

mkCliEnv :: forall cmd appEnv. CliEnvSettings cmd appEnv -> IO (CliEnv cmd appEnv) Source #

Throws: CliEnvException

Since: 0.0.0.0

Querying

asksCliEnv :: MonadReader (CliEnv cmd appEnv) m => (CliEnv cmd appEnv -> field) -> m field Source #

Get a field from the global environment CliEnv.

Since: 0.0.0.0

asksAppEnv :: MonadReader (CliEnv cmd appEnv) m => (appEnv -> field) -> m field Source #

Get a field from custom application-specific environment appEnv.

Since: 0.0.0.0