{- 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.TraceValues 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 Data.Text
import qualified Language.LSP.Protocol.Types.LspEnum

{-|

-}
data TraceValues = 
    {-|
  Turn tracing off.
  -}
  TraceValues_Off
  | {-|
  Trace messages only.
  -}
  TraceValues_Messages
  | {-|
  Verbose message tracing.
  -}
  TraceValues_Verbose
  deriving stock (Int -> TraceValues -> ShowS
[TraceValues] -> ShowS
TraceValues -> String
(Int -> TraceValues -> ShowS)
-> (TraceValues -> String)
-> ([TraceValues] -> ShowS)
-> Show TraceValues
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TraceValues -> ShowS
showsPrec :: Int -> TraceValues -> ShowS
$cshow :: TraceValues -> String
show :: TraceValues -> String
$cshowList :: [TraceValues] -> ShowS
showList :: [TraceValues] -> ShowS
Show, TraceValues -> TraceValues -> Bool
(TraceValues -> TraceValues -> Bool)
-> (TraceValues -> TraceValues -> Bool) -> Eq TraceValues
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TraceValues -> TraceValues -> Bool
== :: TraceValues -> TraceValues -> Bool
$c/= :: TraceValues -> TraceValues -> Bool
/= :: TraceValues -> TraceValues -> Bool
Eq, Eq TraceValues
Eq TraceValues =>
(TraceValues -> TraceValues -> Ordering)
-> (TraceValues -> TraceValues -> Bool)
-> (TraceValues -> TraceValues -> Bool)
-> (TraceValues -> TraceValues -> Bool)
-> (TraceValues -> TraceValues -> Bool)
-> (TraceValues -> TraceValues -> TraceValues)
-> (TraceValues -> TraceValues -> TraceValues)
-> Ord TraceValues
TraceValues -> TraceValues -> Bool
TraceValues -> TraceValues -> Ordering
TraceValues -> TraceValues -> TraceValues
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 :: TraceValues -> TraceValues -> Ordering
compare :: TraceValues -> TraceValues -> Ordering
$c< :: TraceValues -> TraceValues -> Bool
< :: TraceValues -> TraceValues -> Bool
$c<= :: TraceValues -> TraceValues -> Bool
<= :: TraceValues -> TraceValues -> Bool
$c> :: TraceValues -> TraceValues -> Bool
> :: TraceValues -> TraceValues -> Bool
$c>= :: TraceValues -> TraceValues -> Bool
>= :: TraceValues -> TraceValues -> Bool
$cmax :: TraceValues -> TraceValues -> TraceValues
max :: TraceValues -> TraceValues -> TraceValues
$cmin :: TraceValues -> TraceValues -> TraceValues
min :: TraceValues -> TraceValues -> TraceValues
Ord, (forall x. TraceValues -> Rep TraceValues x)
-> (forall x. Rep TraceValues x -> TraceValues)
-> Generic TraceValues
forall x. Rep TraceValues x -> TraceValues
forall x. TraceValues -> Rep TraceValues x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TraceValues -> Rep TraceValues x
from :: forall x. TraceValues -> Rep TraceValues x
$cto :: forall x. Rep TraceValues x -> TraceValues
to :: forall x. Rep TraceValues x -> TraceValues
Generic)
  deriving anyclass (TraceValues -> ()
(TraceValues -> ()) -> NFData TraceValues
forall a. (a -> ()) -> NFData a
$crnf :: TraceValues -> ()
rnf :: TraceValues -> ()
NFData, Eq TraceValues
Eq TraceValues =>
(Int -> TraceValues -> Int)
-> (TraceValues -> Int) -> Hashable TraceValues
Int -> TraceValues -> Int
TraceValues -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TraceValues -> Int
hashWithSalt :: Int -> TraceValues -> Int
$chash :: TraceValues -> Int
hash :: TraceValues -> Int
Hashable)
  deriving ( [TraceValues] -> Value
[TraceValues] -> Encoding
TraceValues -> Bool
TraceValues -> Value
TraceValues -> Encoding
(TraceValues -> Value)
-> (TraceValues -> Encoding)
-> ([TraceValues] -> Value)
-> ([TraceValues] -> Encoding)
-> (TraceValues -> Bool)
-> ToJSON TraceValues
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: TraceValues -> Value
toJSON :: TraceValues -> Value
$ctoEncoding :: TraceValues -> Encoding
toEncoding :: TraceValues -> Encoding
$ctoJSONList :: [TraceValues] -> Value
toJSONList :: [TraceValues] -> Value
$ctoEncodingList :: [TraceValues] -> Encoding
toEncodingList :: [TraceValues] -> Encoding
$comitField :: TraceValues -> Bool
omitField :: TraceValues -> Bool
Aeson.ToJSON
  , Maybe TraceValues
Value -> Parser [TraceValues]
Value -> Parser TraceValues
(Value -> Parser TraceValues)
-> (Value -> Parser [TraceValues])
-> Maybe TraceValues
-> FromJSON TraceValues
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser TraceValues
parseJSON :: Value -> Parser TraceValues
$cparseJSONList :: Value -> Parser [TraceValues]
parseJSONList :: Value -> Parser [TraceValues]
$comittedField :: Maybe TraceValues
omittedField :: Maybe TraceValues
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum TraceValues)
  deriving (forall ann. TraceValues -> Doc ann)
-> (forall ann. [TraceValues] -> Doc ann) -> Pretty TraceValues
forall ann. [TraceValues] -> Doc ann
forall ann. TraceValues -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TraceValues -> Doc ann
pretty :: forall ann. TraceValues -> Doc ann
$cprettyList :: forall ann. [TraceValues] -> Doc ann
prettyList :: forall ann. [TraceValues] -> Doc ann
Pretty via (ViaJSON TraceValues)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum TraceValues where
  knownValues :: Set TraceValues
knownValues = [TraceValues] -> Set TraceValues
forall a. Ord a => [a] -> Set a
Data.Set.fromList [TraceValues
TraceValues_Off
    ,TraceValues
TraceValues_Messages
    ,TraceValues
TraceValues_Verbose]
  type EnumBaseType TraceValues = Data.Text.Text
  toEnumBaseType :: TraceValues -> EnumBaseType TraceValues
toEnumBaseType TraceValues
TraceValues_Off = Text
EnumBaseType TraceValues
"off"
  toEnumBaseType TraceValues
TraceValues_Messages = Text
EnumBaseType TraceValues
"messages"
  toEnumBaseType TraceValues
TraceValues_Verbose = Text
EnumBaseType TraceValues
"verbose"
  fromEnumBaseType :: EnumBaseType TraceValues -> Maybe TraceValues
fromEnumBaseType EnumBaseType TraceValues
"off" = TraceValues -> Maybe TraceValues
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TraceValues
TraceValues_Off
  fromEnumBaseType EnumBaseType TraceValues
"messages" = TraceValues -> Maybe TraceValues
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TraceValues
TraceValues_Messages
  fromEnumBaseType EnumBaseType TraceValues
"verbose" = TraceValues -> Maybe TraceValues
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure TraceValues
TraceValues_Verbose
  fromEnumBaseType EnumBaseType TraceValues
_ = Maybe TraceValues
forall a. Maybe a
Nothing