module Patrol.Type.Level where

import qualified Data.Aeson as Aeson

-- | <https://develop.sentry.dev/sdk/event-payloads/types/#level>
data Level
  = Debug
  | Info
  | Warning
  | Error
  | Fatal
  deriving (Level -> Level -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Level -> Level -> Bool
$c/= :: Level -> Level -> Bool
== :: Level -> Level -> Bool
$c== :: Level -> Level -> Bool
Eq, Int -> Level -> ShowS
[Level] -> ShowS
Level -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Level] -> ShowS
$cshowList :: [Level] -> ShowS
show :: Level -> String
$cshow :: Level -> String
showsPrec :: Int -> Level -> ShowS
$cshowsPrec :: Int -> Level -> ShowS
Show)

instance Aeson.ToJSON Level where
  toJSON :: Level -> Value
toJSON Level
level = forall a. ToJSON a => a -> Value
Aeson.toJSON forall a b. (a -> b) -> a -> b
$ case Level
level of
    Level
Debug -> String
"debug"
    Level
Info -> String
"info"
    Level
Warning -> String
"warning"
    Level
Error -> String
"error"
    Level
Fatal -> String
"fatal"