diff options
Diffstat (limited to 'src/Output.hs')
-rw-r--r-- | src/Output.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/Output.hs b/src/Output.hs index 54b434e..5838342 100644 --- a/src/Output.hs +++ b/src/Output.hs @@ -6,12 +6,14 @@ module Output ( withOutput, outputTerminal, + outputMessage, outputEvent, outputFootnote, ) where import Control.Monad import Control.Monad.Catch +import Control.Monad.IO.Class import Data.Text (Text) import Data.Text.IO qualified as T @@ -76,8 +78,11 @@ outStrLn Output {..} h text | otherwise = do T.hPutStrLn h text -outputEvent :: Output -> OutputEvent -> IO () -outputEvent out@Output {..} = \case +outputMessage :: MonadIO m => Output -> Text -> m () +outputMessage out msg = outputEvent out (OutputMessage msg) + +outputEvent :: MonadIO m => Output -> OutputEvent -> m () +outputEvent out@Output {..} = liftIO . \case OutputMessage msg -> do forM_ outTerminal $ \term -> void $ newLine term msg forM_ outLogs $ \h -> outStrLn out h msg |