{- 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.DocumentDiagnosticReportKind 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

{-|
The document diagnostic report kinds.

@since 3.17.0
-}
data DocumentDiagnosticReportKind = 
    {-|
  A diagnostic report with a full
  set of problems.
  -}
  DocumentDiagnosticReportKind_Full
  | {-|
  A report indicating that the last
  returned report is still accurate.
  -}
  DocumentDiagnosticReportKind_Unchanged
  deriving stock (Int -> DocumentDiagnosticReportKind -> ShowS
[DocumentDiagnosticReportKind] -> ShowS
DocumentDiagnosticReportKind -> String
(Int -> DocumentDiagnosticReportKind -> ShowS)
-> (DocumentDiagnosticReportKind -> String)
-> ([DocumentDiagnosticReportKind] -> ShowS)
-> Show DocumentDiagnosticReportKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DocumentDiagnosticReportKind -> ShowS
showsPrec :: Int -> DocumentDiagnosticReportKind -> ShowS
$cshow :: DocumentDiagnosticReportKind -> String
show :: DocumentDiagnosticReportKind -> String
$cshowList :: [DocumentDiagnosticReportKind] -> ShowS
showList :: [DocumentDiagnosticReportKind] -> ShowS
Show, DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
(DocumentDiagnosticReportKind
 -> DocumentDiagnosticReportKind -> Bool)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> Bool)
-> Eq DocumentDiagnosticReportKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
== :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
$c/= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
/= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
Eq, Eq DocumentDiagnosticReportKind
Eq DocumentDiagnosticReportKind =>
(DocumentDiagnosticReportKind
 -> DocumentDiagnosticReportKind -> Ordering)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> Bool)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> Bool)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> Bool)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> Bool)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind)
-> (DocumentDiagnosticReportKind
    -> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind)
-> Ord DocumentDiagnosticReportKind
DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Ordering
DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind
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 :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Ordering
compare :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Ordering
$c< :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
< :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
$c<= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
<= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
$c> :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
> :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
$c>= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
>= :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> Bool
$cmax :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind
max :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind
$cmin :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind
min :: DocumentDiagnosticReportKind
-> DocumentDiagnosticReportKind -> DocumentDiagnosticReportKind
Ord, (forall x.
 DocumentDiagnosticReportKind -> Rep DocumentDiagnosticReportKind x)
-> (forall x.
    Rep DocumentDiagnosticReportKind x -> DocumentDiagnosticReportKind)
-> Generic DocumentDiagnosticReportKind
forall x.
Rep DocumentDiagnosticReportKind x -> DocumentDiagnosticReportKind
forall x.
DocumentDiagnosticReportKind -> Rep DocumentDiagnosticReportKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
DocumentDiagnosticReportKind -> Rep DocumentDiagnosticReportKind x
from :: forall x.
DocumentDiagnosticReportKind -> Rep DocumentDiagnosticReportKind x
$cto :: forall x.
Rep DocumentDiagnosticReportKind x -> DocumentDiagnosticReportKind
to :: forall x.
Rep DocumentDiagnosticReportKind x -> DocumentDiagnosticReportKind
Generic)
  deriving anyclass (DocumentDiagnosticReportKind -> ()
(DocumentDiagnosticReportKind -> ())
-> NFData DocumentDiagnosticReportKind
forall a. (a -> ()) -> NFData a
$crnf :: DocumentDiagnosticReportKind -> ()
rnf :: DocumentDiagnosticReportKind -> ()
NFData, Eq DocumentDiagnosticReportKind
Eq DocumentDiagnosticReportKind =>
(Int -> DocumentDiagnosticReportKind -> Int)
-> (DocumentDiagnosticReportKind -> Int)
-> Hashable DocumentDiagnosticReportKind
Int -> DocumentDiagnosticReportKind -> Int
DocumentDiagnosticReportKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> DocumentDiagnosticReportKind -> Int
hashWithSalt :: Int -> DocumentDiagnosticReportKind -> Int
$chash :: DocumentDiagnosticReportKind -> Int
hash :: DocumentDiagnosticReportKind -> Int
Hashable)
  deriving ( [DocumentDiagnosticReportKind] -> Value
[DocumentDiagnosticReportKind] -> Encoding
DocumentDiagnosticReportKind -> Bool
DocumentDiagnosticReportKind -> Value
DocumentDiagnosticReportKind -> Encoding
(DocumentDiagnosticReportKind -> Value)
-> (DocumentDiagnosticReportKind -> Encoding)
-> ([DocumentDiagnosticReportKind] -> Value)
-> ([DocumentDiagnosticReportKind] -> Encoding)
-> (DocumentDiagnosticReportKind -> Bool)
-> ToJSON DocumentDiagnosticReportKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: DocumentDiagnosticReportKind -> Value
toJSON :: DocumentDiagnosticReportKind -> Value
$ctoEncoding :: DocumentDiagnosticReportKind -> Encoding
toEncoding :: DocumentDiagnosticReportKind -> Encoding
$ctoJSONList :: [DocumentDiagnosticReportKind] -> Value
toJSONList :: [DocumentDiagnosticReportKind] -> Value
$ctoEncodingList :: [DocumentDiagnosticReportKind] -> Encoding
toEncodingList :: [DocumentDiagnosticReportKind] -> Encoding
$comitField :: DocumentDiagnosticReportKind -> Bool
omitField :: DocumentDiagnosticReportKind -> Bool
Aeson.ToJSON
  , Maybe DocumentDiagnosticReportKind
Value -> Parser [DocumentDiagnosticReportKind]
Value -> Parser DocumentDiagnosticReportKind
(Value -> Parser DocumentDiagnosticReportKind)
-> (Value -> Parser [DocumentDiagnosticReportKind])
-> Maybe DocumentDiagnosticReportKind
-> FromJSON DocumentDiagnosticReportKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser DocumentDiagnosticReportKind
parseJSON :: Value -> Parser DocumentDiagnosticReportKind
$cparseJSONList :: Value -> Parser [DocumentDiagnosticReportKind]
parseJSONList :: Value -> Parser [DocumentDiagnosticReportKind]
$comittedField :: Maybe DocumentDiagnosticReportKind
omittedField :: Maybe DocumentDiagnosticReportKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum DocumentDiagnosticReportKind)
  deriving (forall ann. DocumentDiagnosticReportKind -> Doc ann)
-> (forall ann. [DocumentDiagnosticReportKind] -> Doc ann)
-> Pretty DocumentDiagnosticReportKind
forall ann. [DocumentDiagnosticReportKind] -> Doc ann
forall ann. DocumentDiagnosticReportKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. DocumentDiagnosticReportKind -> Doc ann
pretty :: forall ann. DocumentDiagnosticReportKind -> Doc ann
$cprettyList :: forall ann. [DocumentDiagnosticReportKind] -> Doc ann
prettyList :: forall ann. [DocumentDiagnosticReportKind] -> Doc ann
Pretty via (ViaJSON DocumentDiagnosticReportKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum DocumentDiagnosticReportKind where
  knownValues :: Set DocumentDiagnosticReportKind
knownValues = [DocumentDiagnosticReportKind] -> Set DocumentDiagnosticReportKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Full
    ,DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Unchanged]
  type EnumBaseType DocumentDiagnosticReportKind = Data.Text.Text
  toEnumBaseType :: DocumentDiagnosticReportKind
-> EnumBaseType DocumentDiagnosticReportKind
toEnumBaseType DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Full = Text
EnumBaseType DocumentDiagnosticReportKind
"full"
  toEnumBaseType DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Unchanged = Text
EnumBaseType DocumentDiagnosticReportKind
"unchanged"
  fromEnumBaseType :: EnumBaseType DocumentDiagnosticReportKind
-> Maybe DocumentDiagnosticReportKind
fromEnumBaseType EnumBaseType DocumentDiagnosticReportKind
"full" = DocumentDiagnosticReportKind -> Maybe DocumentDiagnosticReportKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Full
  fromEnumBaseType EnumBaseType DocumentDiagnosticReportKind
"unchanged" = DocumentDiagnosticReportKind -> Maybe DocumentDiagnosticReportKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure DocumentDiagnosticReportKind
DocumentDiagnosticReportKind_Unchanged
  fromEnumBaseType EnumBaseType DocumentDiagnosticReportKind
_ = Maybe DocumentDiagnosticReportKind
forall a. Maybe a
Nothing