{- 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.FailureHandlingKind 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 FailureHandlingKind = 
    {-|
  Applying the workspace change is simply aborted if one of the changes provided
  fails. All operations executed before the failing operation stay executed.
  -}
  FailureHandlingKind_Abort
  | {-|
  All operations are executed transactional. That means they either all
  succeed or no changes at all are applied to the workspace.
  -}
  FailureHandlingKind_Transactional
  | {-|
  If the workspace edit contains only textual file changes they are executed transactional.
  If resource changes (create, rename or delete file) are part of the change the failure
  handling strategy is abort.
  -}
  FailureHandlingKind_TextOnlyTransactional
  | {-|
  The client tries to undo the operations already executed. But there is no
  guarantee that this is succeeding.
  -}
  FailureHandlingKind_Undo
  deriving stock (Int -> FailureHandlingKind -> ShowS
[FailureHandlingKind] -> ShowS
FailureHandlingKind -> String
(Int -> FailureHandlingKind -> ShowS)
-> (FailureHandlingKind -> String)
-> ([FailureHandlingKind] -> ShowS)
-> Show FailureHandlingKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FailureHandlingKind -> ShowS
showsPrec :: Int -> FailureHandlingKind -> ShowS
$cshow :: FailureHandlingKind -> String
show :: FailureHandlingKind -> String
$cshowList :: [FailureHandlingKind] -> ShowS
showList :: [FailureHandlingKind] -> ShowS
Show, FailureHandlingKind -> FailureHandlingKind -> Bool
(FailureHandlingKind -> FailureHandlingKind -> Bool)
-> (FailureHandlingKind -> FailureHandlingKind -> Bool)
-> Eq FailureHandlingKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FailureHandlingKind -> FailureHandlingKind -> Bool
== :: FailureHandlingKind -> FailureHandlingKind -> Bool
$c/= :: FailureHandlingKind -> FailureHandlingKind -> Bool
/= :: FailureHandlingKind -> FailureHandlingKind -> Bool
Eq, Eq FailureHandlingKind
Eq FailureHandlingKind =>
(FailureHandlingKind -> FailureHandlingKind -> Ordering)
-> (FailureHandlingKind -> FailureHandlingKind -> Bool)
-> (FailureHandlingKind -> FailureHandlingKind -> Bool)
-> (FailureHandlingKind -> FailureHandlingKind -> Bool)
-> (FailureHandlingKind -> FailureHandlingKind -> Bool)
-> (FailureHandlingKind
    -> FailureHandlingKind -> FailureHandlingKind)
-> (FailureHandlingKind
    -> FailureHandlingKind -> FailureHandlingKind)
-> Ord FailureHandlingKind
FailureHandlingKind -> FailureHandlingKind -> Bool
FailureHandlingKind -> FailureHandlingKind -> Ordering
FailureHandlingKind -> FailureHandlingKind -> FailureHandlingKind
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 :: FailureHandlingKind -> FailureHandlingKind -> Ordering
compare :: FailureHandlingKind -> FailureHandlingKind -> Ordering
$c< :: FailureHandlingKind -> FailureHandlingKind -> Bool
< :: FailureHandlingKind -> FailureHandlingKind -> Bool
$c<= :: FailureHandlingKind -> FailureHandlingKind -> Bool
<= :: FailureHandlingKind -> FailureHandlingKind -> Bool
$c> :: FailureHandlingKind -> FailureHandlingKind -> Bool
> :: FailureHandlingKind -> FailureHandlingKind -> Bool
$c>= :: FailureHandlingKind -> FailureHandlingKind -> Bool
>= :: FailureHandlingKind -> FailureHandlingKind -> Bool
$cmax :: FailureHandlingKind -> FailureHandlingKind -> FailureHandlingKind
max :: FailureHandlingKind -> FailureHandlingKind -> FailureHandlingKind
$cmin :: FailureHandlingKind -> FailureHandlingKind -> FailureHandlingKind
min :: FailureHandlingKind -> FailureHandlingKind -> FailureHandlingKind
Ord, (forall x. FailureHandlingKind -> Rep FailureHandlingKind x)
-> (forall x. Rep FailureHandlingKind x -> FailureHandlingKind)
-> Generic FailureHandlingKind
forall x. Rep FailureHandlingKind x -> FailureHandlingKind
forall x. FailureHandlingKind -> Rep FailureHandlingKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FailureHandlingKind -> Rep FailureHandlingKind x
from :: forall x. FailureHandlingKind -> Rep FailureHandlingKind x
$cto :: forall x. Rep FailureHandlingKind x -> FailureHandlingKind
to :: forall x. Rep FailureHandlingKind x -> FailureHandlingKind
Generic)
  deriving anyclass (FailureHandlingKind -> ()
(FailureHandlingKind -> ()) -> NFData FailureHandlingKind
forall a. (a -> ()) -> NFData a
$crnf :: FailureHandlingKind -> ()
rnf :: FailureHandlingKind -> ()
NFData, Eq FailureHandlingKind
Eq FailureHandlingKind =>
(Int -> FailureHandlingKind -> Int)
-> (FailureHandlingKind -> Int) -> Hashable FailureHandlingKind
Int -> FailureHandlingKind -> Int
FailureHandlingKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> FailureHandlingKind -> Int
hashWithSalt :: Int -> FailureHandlingKind -> Int
$chash :: FailureHandlingKind -> Int
hash :: FailureHandlingKind -> Int
Hashable)
  deriving ( [FailureHandlingKind] -> Value
[FailureHandlingKind] -> Encoding
FailureHandlingKind -> Bool
FailureHandlingKind -> Value
FailureHandlingKind -> Encoding
(FailureHandlingKind -> Value)
-> (FailureHandlingKind -> Encoding)
-> ([FailureHandlingKind] -> Value)
-> ([FailureHandlingKind] -> Encoding)
-> (FailureHandlingKind -> Bool)
-> ToJSON FailureHandlingKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: FailureHandlingKind -> Value
toJSON :: FailureHandlingKind -> Value
$ctoEncoding :: FailureHandlingKind -> Encoding
toEncoding :: FailureHandlingKind -> Encoding
$ctoJSONList :: [FailureHandlingKind] -> Value
toJSONList :: [FailureHandlingKind] -> Value
$ctoEncodingList :: [FailureHandlingKind] -> Encoding
toEncodingList :: [FailureHandlingKind] -> Encoding
$comitField :: FailureHandlingKind -> Bool
omitField :: FailureHandlingKind -> Bool
Aeson.ToJSON
  , Maybe FailureHandlingKind
Value -> Parser [FailureHandlingKind]
Value -> Parser FailureHandlingKind
(Value -> Parser FailureHandlingKind)
-> (Value -> Parser [FailureHandlingKind])
-> Maybe FailureHandlingKind
-> FromJSON FailureHandlingKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser FailureHandlingKind
parseJSON :: Value -> Parser FailureHandlingKind
$cparseJSONList :: Value -> Parser [FailureHandlingKind]
parseJSONList :: Value -> Parser [FailureHandlingKind]
$comittedField :: Maybe FailureHandlingKind
omittedField :: Maybe FailureHandlingKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum FailureHandlingKind)
  deriving (forall ann. FailureHandlingKind -> Doc ann)
-> (forall ann. [FailureHandlingKind] -> Doc ann)
-> Pretty FailureHandlingKind
forall ann. [FailureHandlingKind] -> Doc ann
forall ann. FailureHandlingKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. FailureHandlingKind -> Doc ann
pretty :: forall ann. FailureHandlingKind -> Doc ann
$cprettyList :: forall ann. [FailureHandlingKind] -> Doc ann
prettyList :: forall ann. [FailureHandlingKind] -> Doc ann
Pretty via (ViaJSON FailureHandlingKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum FailureHandlingKind where
  knownValues :: Set FailureHandlingKind
knownValues = [FailureHandlingKind] -> Set FailureHandlingKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [FailureHandlingKind
FailureHandlingKind_Abort
    ,FailureHandlingKind
FailureHandlingKind_Transactional
    ,FailureHandlingKind
FailureHandlingKind_TextOnlyTransactional
    ,FailureHandlingKind
FailureHandlingKind_Undo]
  type EnumBaseType FailureHandlingKind = Data.Text.Text
  toEnumBaseType :: FailureHandlingKind -> EnumBaseType FailureHandlingKind
toEnumBaseType FailureHandlingKind
FailureHandlingKind_Abort = Text
EnumBaseType FailureHandlingKind
"abort"
  toEnumBaseType FailureHandlingKind
FailureHandlingKind_Transactional = Text
EnumBaseType FailureHandlingKind
"transactional"
  toEnumBaseType FailureHandlingKind
FailureHandlingKind_TextOnlyTransactional = Text
EnumBaseType FailureHandlingKind
"textOnlyTransactional"
  toEnumBaseType FailureHandlingKind
FailureHandlingKind_Undo = Text
EnumBaseType FailureHandlingKind
"undo"
  fromEnumBaseType :: EnumBaseType FailureHandlingKind -> Maybe FailureHandlingKind
fromEnumBaseType EnumBaseType FailureHandlingKind
"abort" = FailureHandlingKind -> Maybe FailureHandlingKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FailureHandlingKind
FailureHandlingKind_Abort
  fromEnumBaseType EnumBaseType FailureHandlingKind
"transactional" = FailureHandlingKind -> Maybe FailureHandlingKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FailureHandlingKind
FailureHandlingKind_Transactional
  fromEnumBaseType EnumBaseType FailureHandlingKind
"textOnlyTransactional" = FailureHandlingKind -> Maybe FailureHandlingKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FailureHandlingKind
FailureHandlingKind_TextOnlyTransactional
  fromEnumBaseType EnumBaseType FailureHandlingKind
"undo" = FailureHandlingKind -> Maybe FailureHandlingKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FailureHandlingKind
FailureHandlingKind_Undo
  fromEnumBaseType EnumBaseType FailureHandlingKind
_ = Maybe FailureHandlingKind
forall a. Maybe a
Nothing