{- ORMOLU_DISABLE -}
{- HLINT ignore -}
-- THIS IS A GENERATED FILE, DO NOT EDIT

{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.MessageType where

import Control.DeepSeq
import Data.Hashable
import GHC.Generics
import Language.LSP.Protocol.Utils.Misc
import Prettyprinter
import qualified Data.Aeson as Aeson
import qualified Data.Row.Aeson as Aeson
import qualified Data.Row.Hashable as Hashable
import qualified Data.Set
import qualified Data.String
import qualified Language.LSP.Protocol.Types.Common
import qualified Language.LSP.Protocol.Types.LspEnum

{-|
The message type
-}
data MessageType = 
    {-|
  An error message.
  -}
  MessageType_Error
  | {-|
  A warning message.
  -}
  MessageType_Warning
  | {-|
  An information message.
  -}
  MessageType_Info
  | {-|
  A log message.
  -}
  MessageType_Log
  deriving stock (Int -> MessageType -> ShowS
[MessageType] -> ShowS
MessageType -> String
(Int -> MessageType -> ShowS)
-> (MessageType -> String)
-> ([MessageType] -> ShowS)
-> Show MessageType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MessageType -> ShowS
showsPrec :: Int -> MessageType -> ShowS
$cshow :: MessageType -> String
show :: MessageType -> String
$cshowList :: [MessageType] -> ShowS
showList :: [MessageType] -> ShowS
Show, MessageType -> MessageType -> Bool
(MessageType -> MessageType -> Bool)
-> (MessageType -> MessageType -> Bool) -> Eq MessageType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MessageType -> MessageType -> Bool
== :: MessageType -> MessageType -> Bool
$c/= :: MessageType -> MessageType -> Bool
/= :: MessageType -> MessageType -> Bool
Eq, Eq MessageType
Eq MessageType =>
(MessageType -> MessageType -> Ordering)
-> (MessageType -> MessageType -> Bool)
-> (MessageType -> MessageType -> Bool)
-> (MessageType -> MessageType -> Bool)
-> (MessageType -> MessageType -> Bool)
-> (MessageType -> MessageType -> MessageType)
-> (MessageType -> MessageType -> MessageType)
-> Ord MessageType
MessageType -> MessageType -> Bool
MessageType -> MessageType -> Ordering
MessageType -> MessageType -> MessageType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: MessageType -> MessageType -> Ordering
compare :: MessageType -> MessageType -> Ordering
$c< :: MessageType -> MessageType -> Bool
< :: MessageType -> MessageType -> Bool
$c<= :: MessageType -> MessageType -> Bool
<= :: MessageType -> MessageType -> Bool
$c> :: MessageType -> MessageType -> Bool
> :: MessageType -> MessageType -> Bool
$c>= :: MessageType -> MessageType -> Bool
>= :: MessageType -> MessageType -> Bool
$cmax :: MessageType -> MessageType -> MessageType
max :: MessageType -> MessageType -> MessageType
$cmin :: MessageType -> MessageType -> MessageType
min :: MessageType -> MessageType -> MessageType
Ord, (forall x. MessageType -> Rep MessageType x)
-> (forall x. Rep MessageType x -> MessageType)
-> Generic MessageType
forall x. Rep MessageType x -> MessageType
forall x. MessageType -> Rep MessageType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MessageType -> Rep MessageType x
from :: forall x. MessageType -> Rep MessageType x
$cto :: forall x. Rep MessageType x -> MessageType
to :: forall x. Rep MessageType x -> MessageType
Generic)
  deriving anyclass (MessageType -> ()
(MessageType -> ()) -> NFData MessageType
forall a. (a -> ()) -> NFData a
$crnf :: MessageType -> ()
rnf :: MessageType -> ()
NFData, Eq MessageType
Eq MessageType =>
(Int -> MessageType -> Int)
-> (MessageType -> Int) -> Hashable MessageType
Int -> MessageType -> Int
MessageType -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> MessageType -> Int
hashWithSalt :: Int -> MessageType -> Int
$chash :: MessageType -> Int
hash :: MessageType -> Int
Hashable)
  deriving ( [MessageType] -> Value
[MessageType] -> Encoding
MessageType -> Bool
MessageType -> Value
MessageType -> Encoding
(MessageType -> Value)
-> (MessageType -> Encoding)
-> ([MessageType] -> Value)
-> ([MessageType] -> Encoding)
-> (MessageType -> Bool)
-> ToJSON MessageType
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: MessageType -> Value
toJSON :: MessageType -> Value
$ctoEncoding :: MessageType -> Encoding
toEncoding :: MessageType -> Encoding
$ctoJSONList :: [MessageType] -> Value
toJSONList :: [MessageType] -> Value
$ctoEncodingList :: [MessageType] -> Encoding
toEncodingList :: [MessageType] -> Encoding
$comitField :: MessageType -> Bool
omitField :: MessageType -> Bool
Aeson.ToJSON
  , Maybe MessageType
Value -> Parser [MessageType]
Value -> Parser MessageType
(Value -> Parser MessageType)
-> (Value -> Parser [MessageType])
-> Maybe MessageType
-> FromJSON MessageType
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser MessageType
parseJSON :: Value -> Parser MessageType
$cparseJSONList :: Value -> Parser [MessageType]
parseJSONList :: Value -> Parser [MessageType]
$comittedField :: Maybe MessageType
omittedField :: Maybe MessageType
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum MessageType)
  deriving (forall ann. MessageType -> Doc ann)
-> (forall ann. [MessageType] -> Doc ann) -> Pretty MessageType
forall ann. [MessageType] -> Doc ann
forall ann. MessageType -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. MessageType -> Doc ann
pretty :: forall ann. MessageType -> Doc ann
$cprettyList :: forall ann. [MessageType] -> Doc ann
prettyList :: forall ann. [MessageType] -> Doc ann
Pretty via (ViaJSON MessageType)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum MessageType where
  knownValues :: Set MessageType
knownValues = [MessageType] -> Set MessageType
forall a. Ord a => [a] -> Set a
Data.Set.fromList [MessageType
MessageType_Error
    ,MessageType
MessageType_Warning
    ,MessageType
MessageType_Info
    ,MessageType
MessageType_Log]
  type EnumBaseType MessageType = Language.LSP.Protocol.Types.Common.UInt
  toEnumBaseType :: MessageType -> EnumBaseType MessageType
toEnumBaseType MessageType
MessageType_Error = EnumBaseType MessageType
UInt
1
  toEnumBaseType MessageType
MessageType_Warning = EnumBaseType MessageType
UInt
2
  toEnumBaseType MessageType
MessageType_Info = EnumBaseType MessageType
UInt
3
  toEnumBaseType MessageType
MessageType_Log = EnumBaseType MessageType
UInt
4
  fromEnumBaseType :: EnumBaseType MessageType -> Maybe MessageType
fromEnumBaseType EnumBaseType MessageType
1 = MessageType -> Maybe MessageType
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MessageType
MessageType_Error
  fromEnumBaseType EnumBaseType MessageType
2 = MessageType -> Maybe MessageType
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MessageType
MessageType_Warning
  fromEnumBaseType EnumBaseType MessageType
3 = MessageType -> Maybe MessageType
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MessageType
MessageType_Info
  fromEnumBaseType EnumBaseType MessageType
4 = MessageType -> Maybe MessageType
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MessageType
MessageType_Log
  fromEnumBaseType EnumBaseType MessageType
_ = Maybe MessageType
forall a. Maybe a
Nothing