never executed always true always false
    1 module HelVM.HelMA.Automaton.API.LogLevel where
    2 
    3 import qualified Control.Monad.Logger as Logger
    4 
    5 import qualified RIO
    6 
    7 import           Data.Default
    8 
    9 showEitherTextLogLevel :: Either Text LogLevel -> Text
   10 showEitherTextLogLevel (Right l) = show l
   11 showEitherTextLogLevel (Left t)  = show t
   12 
   13 fromLogger :: Logger.LogLevel -> Either Text LogLevel
   14 fromLogger Logger.LevelDebug     = Right Debug
   15 fromLogger Logger.LevelInfo      = Right Info
   16 fromLogger Logger.LevelWarn      = Right Warn
   17 fromLogger Logger.LevelError     = Right Error
   18 fromLogger (Logger.LevelOther t) = Left t
   19 
   20 fromRio :: RIO.LogLevel -> Either Text LogLevel
   21 fromRio RIO.LevelDebug     = Right Debug
   22 fromRio RIO.LevelInfo      = Right Info
   23 fromRio RIO.LevelWarn      = Right Warn
   24 fromRio RIO.LevelError     = Right Error
   25 fromRio (RIO.LevelOther t) = Left t
   26 
   27 toLogger :: LogLevel -> Logger.LogLevel
   28 toLogger Debug = Logger.LevelDebug
   29 toLogger Info  = Logger.LevelInfo
   30 toLogger Warn  = Logger.LevelWarn
   31 toLogger Error = Logger.LevelError
   32 
   33 toRio :: LogLevel -> RIO.LogLevel
   34 toRio Debug = RIO.LevelDebug
   35 toRio Info  = RIO.LevelInfo
   36 toRio Warn  = RIO.LevelWarn
   37 toRio Error = RIO.LevelError
   38 
   39 defaultLogLevel :: LogLevel
   40 defaultLogLevel = def
   41 
   42 logLevels :: NonEmpty LogLevel
   43 logLevels = universeNonEmpty
   44 
   45 data LogLevel =
   46     Debug
   47   | Info
   48   | Warn
   49   | Error
   50   deriving stock (Bounded , Enum , Eq , Ord, Read , Show)
   51 
   52 instance Default LogLevel where
   53   def = minBound