navi
Safe HaskellNone
LanguageGHC2021

Navi

Description

This module provides the core application type and logic.

Synopsis

Entry point

Application Types

newtype NaviT e (m :: Type -> Type) a Source #

NaviT is the core type used to run the application.

Constructors

MkNaviT (ReaderT e m a) 

Instances

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

Defined in Navi.NaviT

Methods

ask :: NaviT e m e #

local :: (e -> e) -> NaviT e m a -> NaviT e m a #

reader :: (e -> a) -> NaviT e m a #

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

Defined in Navi.NaviT

Methods

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

MonadAsync m => MonadAsync (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

Methods

withAsync :: HasCallStack => NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b Source #

withAsyncBound :: HasCallStack => NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b Source #

withAsyncOn :: HasCallStack => Int -> NaviT e m a -> (Async a -> NaviT e m b) -> NaviT e m b Source #

withAsyncWithUnmask :: HasCallStack => ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a) -> (Async a -> NaviT e m b) -> NaviT e m b Source #

withAsyncOnWithUnmask :: HasCallStack => Int -> ((forall c. NaviT e m c -> NaviT e m c) -> NaviT e m a) -> (Async a -> NaviT e m b) -> NaviT e m b Source #

wait :: HasCallStack => Async a -> NaviT e m a Source #

poll :: HasCallStack => Async a -> NaviT e m (Maybe (Either SomeException a)) Source #

waitCatch :: HasCallStack => Async a -> NaviT e m (Either SomeException a) Source #

cancel :: HasCallStack => Async a -> NaviT e m () Source #

uninterruptibleCancel :: HasCallStack => Async a -> NaviT e m () Source #

cancelWith :: (Exception e0, HasCallStack) => Async a -> e0 -> NaviT e m () Source #

race :: HasCallStack => NaviT e m a -> NaviT e m b -> NaviT e m (Either a b) Source #

concurrently :: HasCallStack => NaviT e m a -> NaviT e m b -> NaviT e m (a, b) Source #

concurrently_ :: HasCallStack => NaviT e m a -> NaviT e m b -> NaviT e m () Source #

waitAny :: HasCallStack => [Async a] -> NaviT e m (Async a, a) Source #

waitAnyCatch :: HasCallStack => [Async a] -> NaviT e m (Async a, Either SomeException a) Source #

waitAnyCancel :: HasCallStack => [Async a] -> NaviT e m (Async a, a) Source #

waitAnyCatchCancel :: HasCallStack => [Async a] -> NaviT e m (Async a, Either SomeException a) Source #

waitEither :: HasCallStack => Async a -> Async b -> NaviT e m (Either a b) Source #

waitEitherCatch :: HasCallStack => Async a -> Async b -> NaviT e m (Either (Either SomeException a) (Either SomeException b)) Source #

waitEitherCancel :: HasCallStack => Async a -> Async b -> NaviT e m (Either a b) Source #

waitEitherCatchCancel :: HasCallStack => Async a -> Async b -> NaviT e m (Either (Either SomeException a) (Either SomeException b)) Source #

waitEither_ :: HasCallStack => Async a -> Async b -> NaviT e m () Source #

waitBoth :: HasCallStack => Async a -> Async b -> NaviT e m (a, b) Source #

async :: HasCallStack => NaviT e m a -> NaviT e m (Async a) Source #

asyncBound :: HasCallStack => NaviT e m a -> NaviT e m (Async a) Source #

asyncOn :: HasCallStack => Int -> NaviT e m a -> NaviT e m (Async a) Source #

asyncWithUnmask :: HasCallStack => ((forall b. NaviT e m b -> NaviT e m b) -> NaviT e m a) -> NaviT e m (Async a) Source #

asyncOnWithUnmask :: HasCallStack => Int -> ((forall b. NaviT e m b -> NaviT e m b) -> NaviT e m a) -> NaviT e m (Async a) Source #

link :: HasCallStack => Async a -> NaviT e m () Source #

linkOnly :: HasCallStack => (SomeException -> Bool) -> Async a -> NaviT e m () Source #

link2 :: HasCallStack => Async a -> Async b -> NaviT e m () Source #

link2Only :: HasCallStack => (SomeException -> Bool) -> Async a -> Async b -> NaviT e m () Source #

pooledMapConcurrentlyN :: (HasCallStack, Traversable t) => Positive Int -> (a -> NaviT e m b) -> t a -> NaviT e m (t b) Source #

pooledMapConcurrently :: (HasCallStack, Traversable t) => (a -> NaviT e m b) -> t a -> NaviT e m (t b) Source #

pooledMapConcurrentlyN_ :: (Foldable f, HasCallStack) => Positive Int -> (a -> NaviT e m b) -> f a -> NaviT e m () Source #

pooledMapConcurrently_ :: (Foldable f, HasCallStack) => (a -> NaviT e m b) -> f a -> NaviT e m () Source #

MonadFileReader m => MonadFileReader (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

MonadHandleWriter m => MonadHandleWriter (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

MonadIORef m => MonadIORef (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

Methods

newIORef :: HasCallStack => a -> NaviT e m (IORef a) Source #

readIORef :: HasCallStack => IORef a -> NaviT e m a Source #

writeIORef :: HasCallStack => IORef a -> a -> NaviT e m () Source #

atomicWriteIORef :: HasCallStack => IORef a -> a -> NaviT e m () Source #

modifyIORef' :: HasCallStack => IORef a -> (a -> a) -> NaviT e m () Source #

atomicModifyIORef' :: HasCallStack => IORef a -> (a -> (a, b)) -> NaviT e m b Source #

MonadSTM m => MonadSTM (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

Methods

atomically :: HasCallStack => STM a -> NaviT e m a Source #

MonadTerminal m => MonadTerminal (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

MonadThread m => MonadThread (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

MonadTime m => MonadTime (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

MonadTypedProcess m => MonadTypedProcess (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

Methods

runProcess :: HasCallStack => ProcessConfig stdin stdout stderr -> NaviT e m ExitCode Source #

readProcess :: HasCallStack => ProcessConfig stdin stdoutIgnored stderrIgnored -> NaviT e m (ExitCode, ByteString, ByteString) Source #

readProcessStdout :: HasCallStack => ProcessConfig stdin stdoutIgnored stderr -> NaviT e m (ExitCode, ByteString) Source #

readProcessStderr :: HasCallStack => ProcessConfig stdin stdout stderrIgnored -> NaviT e m (ExitCode, ByteString) Source #

readProcessInterleaved :: HasCallStack => ProcessConfig stdin stdoutIgnored stderrIgnored -> NaviT e m (ExitCode, ByteString) Source #

withProcessWait :: HasCallStack => ProcessConfig stdin stdout stderr -> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a Source #

withProcessTerm :: HasCallStack => ProcessConfig stdin stdout stderr -> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a Source #

startProcess :: HasCallStack => ProcessConfig stdin stdout stderr -> NaviT e m (Process stdin stdout stderr) Source #

stopProcess :: HasCallStack => Process stdin stdout stderr -> NaviT e m () Source #

runProcess_ :: HasCallStack => ProcessConfig stdin stdout stderr -> NaviT e m () Source #

readProcess_ :: HasCallStack => ProcessConfig stdin stdoutIgnored stderrIgnored -> NaviT e m (ByteString, ByteString) Source #

readProcessStdout_ :: HasCallStack => ProcessConfig stdin stdoutIgnored stderr -> NaviT e m ByteString Source #

readProcessStderr_ :: HasCallStack => ProcessConfig stdin stdout stderrIgnored -> NaviT e m ByteString Source #

readProcessInterleaved_ :: HasCallStack => ProcessConfig stdin stdoutIgnored stderrIgnored -> NaviT e m ByteString Source #

withProcessWait_ :: HasCallStack => ProcessConfig stdin stdout stderr -> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a Source #

withProcessTerm_ :: HasCallStack => ProcessConfig stdin stdout stderr -> (Process stdin stdout stderr -> NaviT e m a) -> NaviT e m a Source #

waitExitCode :: HasCallStack => Process stdin stdout stderr -> NaviT e m ExitCode Source #

getExitCode :: HasCallStack => Process stdin stdout stderr -> NaviT e m (Maybe ExitCode) Source #

checkExitCode :: HasCallStack => Process stdin stdout stderr -> NaviT e m () Source #

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

Defined in Navi.NaviT

Methods

catch :: (HasCallStack, Exception e0) => NaviT e m a -> (e0 -> NaviT e m a) -> NaviT e m a #

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

Defined in Navi.NaviT

Methods

mask :: HasCallStack => ((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b) -> NaviT e m b #

uninterruptibleMask :: HasCallStack => ((forall a. NaviT e m a -> NaviT e m a) -> NaviT e m b) -> NaviT e m b #

generalBracket :: HasCallStack => NaviT e m a -> (a -> ExitCase b -> NaviT e m c) -> (a -> NaviT e m b) -> NaviT e m (b, c) #

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

Defined in Navi.NaviT

Methods

throwM :: (HasCallStack, Exception e0) => e0 -> NaviT e m a #

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

Defined in Navi.NaviT

Methods

pure :: a -> NaviT e m a #

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

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

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

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

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

Defined in Navi.NaviT

Methods

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

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

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

Defined in Navi.NaviT

Methods

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

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

return :: a -> NaviT e m a #

(MonadSTM m, MonadTime m, MonadThread m) => MonadLogger (NaviT Env m) Source # 
Instance details

Defined in Navi.NaviT

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> NaviT Env m () Source #

(MonadDBus m, MonadSTM m, MonadTime m, MonadThread m, MonadTypedProcess m) => MonadNotify (NaviT Env m) Source # 
Instance details

Defined in Navi.NaviT

Methods

sendNote :: NaviNote -> NaviT Env m () Source #

MonadSystemInfo m => MonadSystemInfo (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

Methods

query :: HasCallStack => ServiceType result -> NaviT e m (result, Maybe PollInterval) Source #

MonadDBus m => MonadDBus (NaviT e m) Source # 
Instance details

Defined in Navi.NaviT

runNaviT :: NaviT env m a -> env -> m a Source #

Runs NaviT.