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