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 import           HelVM.HelIO.Containers.MTIndexSafe
   10 
   11 logLevelFromInt ∷ Int → LogLevel
   12 logLevelFromInt = fromInt logLevels
   13 
   14 showEitherTextLogLevel ∷ Either Text LogLevel → Text
   15 showEitherTextLogLevel (Right l) = show l
   16 showEitherTextLogLevel (Left t)  = show t
   17 
   18 fromLogger ∷ Logger.LogLevel → Either Text LogLevel
   19 fromLogger Logger.LevelError     = Right Error
   20 fromLogger Logger.LevelWarn      = Right Warn
   21 fromLogger Logger.LevelInfo      = Right Info
   22 fromLogger Logger.LevelDebug     = Right Debug
   23 fromLogger (Logger.LevelOther t) = Left t
   24 
   25 fromRio ∷ RIO.LogLevel → Either Text LogLevel
   26 fromRio RIO.LevelError     = Right Error
   27 fromRio RIO.LevelWarn      = Right Warn
   28 fromRio RIO.LevelInfo      = Right Info
   29 fromRio RIO.LevelDebug     = Right Debug
   30 fromRio (RIO.LevelOther t) = Left t
   31 
   32 toLogger ∷ LogLevel → Logger.LogLevel
   33 toLogger Error = Logger.LevelError
   34 toLogger Warn  = Logger.LevelWarn
   35 toLogger Info  = Logger.LevelInfo
   36 toLogger Debug = Logger.LevelDebug
   37 
   38 toRio ∷ LogLevel → RIO.LogLevel
   39 toRio Error = RIO.LevelError
   40 toRio Warn  = RIO.LevelWarn
   41 toRio Info  = RIO.LevelInfo
   42 toRio Debug = RIO.LevelDebug
   43 
   44 defaultLogLevel ∷ LogLevel
   45 defaultLogLevel = def
   46 
   47 logLevels ∷ NonEmpty LogLevel
   48 logLevels = universeNonEmpty
   49 
   50 data LogLevel
   51   = Error
   52   | Warn
   53   | Info
   54   | Debug
   55   deriving stock (Bounded, Enum, Eq, Ord, Read, Show)
   56 
   57 instance Default LogLevel where
   58   def = minBound
   59 
   60 ----
   61 
   62 fromInt ∷ (Bounded a, Foldable t) ⇒ t a → Int → a
   63 fromInt l i = fromMaybe maxBound $ indexMaybe (toList l) i