packages feed

polysemy-log-0.7.0.0: lib/Polysemy/Log/Pure.hs

-- |Description: Pure interpreters for 'Log'.
module Polysemy.Log.Pure where

import Polysemy.Log.Effect.Log (Log (Log))
import Polysemy.Log.Data.LogMessage (LogMessage)

-- |Interpret 'Log' in terms of 'Output'.
interpretLogOutput ::
  Member (Output LogMessage) r =>
  InterpreterFor Log r
interpretLogOutput =
  interpret \case
    Log msg -> output msg

-- |Interpret 'Log' by discarding all messages.
interpretLogNull :: InterpreterFor Log r
interpretLogNull =
  interpret \case
    Log _ -> pure ()