Safe Haskell | None |
---|---|
Language | GHC2021 |
Navi.Env.Core
Description
This module provides the core Env
type for Navi.
Synopsis
- class HasEvents env where
- class HasLogEnv env where
- class HasNoteQueue env where
- getNoteQueue :: env -> TBQueue NaviNote
- sendNoteQueue :: (HasCallStack, HasNoteQueue env, MonadReader env m, MonadSTM m) => NaviNote -> m ()
- newtype TopField a = MkTopField a
- newtype CoreEnvField a = MkCoreEnvField a
- data Env = MkEnv {}
HasX-style Typeclasses
class HasEvents env where Source #
Retrieves the events.
class HasLogEnv env where Source #
Retrieves the log environment.
class HasNoteQueue env where Source #
Retrieves the note queue.
Methods
getNoteQueue :: env -> TBQueue NaviNote Source #
Instances
HasNoteQueue Env Source # | |
Defined in Navi.Env.Core | |
(Is k A_Getter, LabelOptic' "coreEnv" k a Env) => HasNoteQueue (CoreEnvField a) Source # | |
Defined in Navi.Env.Core Methods getNoteQueue :: CoreEnvField a -> TBQueue NaviNote Source # | |
(Is k A_Getter, LabelOptic' "noteQueue" k a (TBQueue NaviNote)) => HasNoteQueue (TopField a) Source # | |
Defined in Navi.Env.Core |
sendNoteQueue :: (HasCallStack, HasNoteQueue env, MonadReader env m, MonadSTM m) => NaviNote -> m () Source #
Deriving
Used for deriving instances from the top level field name e.g. 'events :: NonEmpty AnyEvent'.
Constructors
MkTopField a |
Instances
(Is k A_Getter, LabelOptic' "events" k a (NonEmpty AnyEvent)) => HasEvents (TopField a) Source # | |
(Is k A_Getter, LabelOptic' "logEnv" k a (Maybe LogEnv)) => HasLogEnv (TopField a) Source # | |
(Is k A_Getter, LabelOptic' "noteQueue" k a (TBQueue NaviNote)) => HasNoteQueue (TopField a) Source # | |
Defined in Navi.Env.Core |
newtype CoreEnvField a Source #
Used for deriving instances for types with a field 'coreEnv :: Env'.
Constructors
MkCoreEnvField a |
Instances
(Is k A_Getter, LabelOptic' "coreEnv" k a Env) => HasEvents (CoreEnvField a) Source # | |
Defined in Navi.Env.Core | |
(Is k A_Getter, LabelOptic' "coreEnv" k a Env) => HasLogEnv (CoreEnvField a) Source # | |
Defined in Navi.Env.Core | |
(Is k A_Getter, LabelOptic' "coreEnv" k a Env) => HasNoteQueue (CoreEnvField a) Source # | |
Defined in Navi.Env.Core Methods getNoteQueue :: CoreEnvField a -> TBQueue NaviNote Source # |
Concrete Env
Env
holds all of our environment data that is used while running navi.
Constructors
MkEnv | |
Fields |
Instances
HasEvents Env Source # | |
HasLogEnv Env Source # | |
HasNoteQueue Env Source # | |
Defined in Navi.Env.Core | |
(k ~ A_Lens, a ~ NonEmpty AnyEvent, b ~ NonEmpty AnyEvent) => LabelOptic "events" k Env Env a b Source # | |
Defined in Navi.Env.Core | |
(k ~ A_Lens, a ~ Maybe LogEnv, b ~ Maybe LogEnv) => LabelOptic "logEnv" k Env Env a b Source # | |
Defined in Navi.Env.Core | |
(k ~ A_Lens, x ~ Namespace, y ~ Namespace) => LabelOptic "namespace" k Env Env x y Source # | |
Defined in Navi.Env.Core | |
(k ~ A_Lens, a ~ TBQueue NaviNote, b ~ TBQueue NaviNote) => LabelOptic "noteQueue" k Env Env a b Source # | |
Defined in Navi.Env.Core | |
(k ~ A_Lens, a ~ NoteSystem 'ConfigPhaseEnv, b ~ NoteSystem 'ConfigPhaseEnv) => LabelOptic "notifySystem" k Env Env a b Source # | |
Defined in Navi.Env.Core | |
(MonadSTM m, MonadTime m, MonadThread m) => MonadLogger (NaviT Env m) Source # | |
Defined in Navi.NaviT | |
(MonadDBus m, MonadSTM m, MonadTime m, MonadThread m, MonadTypedProcess m) => MonadNotify (NaviT Env m) Source # | |