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

{-|
Represents reasons why a text document is saved.
-}
data TextDocumentSaveReason = 
    {-|
  Manually triggered, e.g. by the user pressing save, by starting debugging,
  or by an API call.
  -}
  TextDocumentSaveReason_Manual
  | {-|
  Automatic after a delay.
  -}
  TextDocumentSaveReason_AfterDelay
  | {-|
  When the editor lost focus.
  -}
  TextDocumentSaveReason_FocusOut
  deriving stock (Int -> TextDocumentSaveReason -> ShowS
[TextDocumentSaveReason] -> ShowS
TextDocumentSaveReason -> String
(Int -> TextDocumentSaveReason -> ShowS)
-> (TextDocumentSaveReason -> String)
-> ([TextDocumentSaveReason] -> ShowS)
-> Show TextDocumentSaveReason
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TextDocumentSaveReason -> ShowS
showsPrec :: Int -> TextDocumentSaveReason -> ShowS
$cshow :: TextDocumentSaveReason -> String
show :: TextDocumentSaveReason -> String
$cshowList :: [TextDocumentSaveReason] -> ShowS
showList :: [TextDocumentSaveReason] -> ShowS
Show, TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
(TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> (TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> Eq TextDocumentSaveReason
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
== :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
$c/= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
/= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
Eq, Eq TextDocumentSaveReason
Eq TextDocumentSaveReason =>
(TextDocumentSaveReason -> TextDocumentSaveReason -> Ordering)
-> (TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> (TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> (TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> (TextDocumentSaveReason -> TextDocumentSaveReason -> Bool)
-> (TextDocumentSaveReason
    -> TextDocumentSaveReason -> TextDocumentSaveReason)
-> (TextDocumentSaveReason
    -> TextDocumentSaveReason -> TextDocumentSaveReason)
-> Ord TextDocumentSaveReason
TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
TextDocumentSaveReason -> TextDocumentSaveReason -> Ordering
TextDocumentSaveReason
-> TextDocumentSaveReason -> TextDocumentSaveReason
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 :: TextDocumentSaveReason -> TextDocumentSaveReason -> Ordering
compare :: TextDocumentSaveReason -> TextDocumentSaveReason -> Ordering
$c< :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
< :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
$c<= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
<= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
$c> :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
> :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
$c>= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
>= :: TextDocumentSaveReason -> TextDocumentSaveReason -> Bool
$cmax :: TextDocumentSaveReason
-> TextDocumentSaveReason -> TextDocumentSaveReason
max :: TextDocumentSaveReason
-> TextDocumentSaveReason -> TextDocumentSaveReason
$cmin :: TextDocumentSaveReason
-> TextDocumentSaveReason -> TextDocumentSaveReason
min :: TextDocumentSaveReason
-> TextDocumentSaveReason -> TextDocumentSaveReason
Ord, (forall x. TextDocumentSaveReason -> Rep TextDocumentSaveReason x)
-> (forall x.
    Rep TextDocumentSaveReason x -> TextDocumentSaveReason)
-> Generic TextDocumentSaveReason
forall x. Rep TextDocumentSaveReason x -> TextDocumentSaveReason
forall x. TextDocumentSaveReason -> Rep TextDocumentSaveReason x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TextDocumentSaveReason -> Rep TextDocumentSaveReason x
from :: forall x. TextDocumentSaveReason -> Rep TextDocumentSaveReason x
$cto :: forall x. Rep TextDocumentSaveReason x -> TextDocumentSaveReason
to :: forall x. Rep TextDocumentSaveReason x -> TextDocumentSaveReason
Generic)
  deriving anyclass (TextDocumentSaveReason -> ()
(TextDocumentSaveReason -> ()) -> NFData TextDocumentSaveReason
forall a. (a -> ()) -> NFData a
$crnf :: TextDocumentSaveReason -> ()
rnf :: TextDocumentSaveReason -> ()
NFData, Eq TextDocumentSaveReason
Eq TextDocumentSaveReason =>
(Int -> TextDocumentSaveReason -> Int)
-> (TextDocumentSaveReason -> Int)
-> Hashable TextDocumentSaveReason
Int -> TextDocumentSaveReason -> Int
TextDocumentSaveReason -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TextDocumentSaveReason -> Int
hashWithSalt :: Int -> TextDocumentSaveReason -> Int
$chash :: TextDocumentSaveReason -> Int
hash :: TextDocumentSaveReason -> Int
Hashable)
  deriving ( [TextDocumentSaveReason] -> Value
[TextDocumentSaveReason] -> Encoding
TextDocumentSaveReason -> Bool
TextDocumentSaveReason -> Value
TextDocumentSaveReason -> Encoding
(TextDocumentSaveReason -> Value)
-> (TextDocumentSaveReason -> Encoding)
-> ([TextDocumentSaveReason] -> Value)
-> ([TextDocumentSaveReason] -> Encoding)
-> (TextDocumentSaveReason -> Bool)
-> ToJSON TextDocumentSaveReason
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: TextDocumentSaveReason -> Value
toJSON :: TextDocumentSaveReason -> Value
$ctoEncoding :: TextDocumentSaveReason -> Encoding
toEncoding :: TextDocumentSaveReason -> Encoding
$ctoJSONList :: [TextDocumentSaveReason] -> Value
toJSONList :: [TextDocumentSaveReason] -> Value
$ctoEncodingList :: [TextDocumentSaveReason] -> Encoding
toEncodingList :: [TextDocumentSaveReason] -> Encoding
$comitField :: TextDocumentSaveReason -> Bool
omitField :: TextDocumentSaveReason -> Bool
Aeson.ToJSON
  , Maybe TextDocumentSaveReason
Value -> Parser [TextDocumentSaveReason]
Value -> Parser TextDocumentSaveReason
(Value -> Parser TextDocumentSaveReason)
-> (Value -> Parser [TextDocumentSaveReason])
-> Maybe TextDocumentSaveReason
-> FromJSON TextDocumentSaveReason
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser TextDocumentSaveReason
parseJSON :: Value -> Parser TextDocumentSaveReason
$cparseJSONList :: Value -> Parser [TextDocumentSaveReason]
parseJSONList :: Value -> Parser [TextDocumentSaveReason]
$comittedField :: Maybe TextDocumentSaveReason
omittedField :: Maybe TextDocumentSaveReason
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum TextDocumentSaveReason)
  deriving (forall ann. TextDocumentSaveReason -> Doc ann)
-> (forall ann. [TextDocumentSaveReason] -> Doc ann)
-> Pretty TextDocumentSaveReason
forall ann. [TextDocumentSaveReason] -> Doc ann
forall ann. TextDocumentSaveReason -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TextDocumentSaveReason -> Doc ann
pretty :: forall ann. TextDocumentSaveReason -> Doc ann
$cprettyList :: forall ann. [TextDocumentSaveReason] -> Doc ann
prettyList :: forall ann. [TextDocumentSaveReason] -> Doc ann
Pretty via (ViaJSON TextDocumentSaveReason)

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