{- 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.ResourceOperationKind 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 ResourceOperationKind = 
    {-|
  Supports creating new files and folders.
  -}
  ResourceOperationKind_Create
  | {-|
  Supports renaming existing files and folders.
  -}
  ResourceOperationKind_Rename
  | {-|
  Supports deleting existing files and folders.
  -}
  ResourceOperationKind_Delete
  deriving stock (Int -> ResourceOperationKind -> ShowS
[ResourceOperationKind] -> ShowS
ResourceOperationKind -> String
(Int -> ResourceOperationKind -> ShowS)
-> (ResourceOperationKind -> String)
-> ([ResourceOperationKind] -> ShowS)
-> Show ResourceOperationKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ResourceOperationKind -> ShowS
showsPrec :: Int -> ResourceOperationKind -> ShowS
$cshow :: ResourceOperationKind -> String
show :: ResourceOperationKind -> String
$cshowList :: [ResourceOperationKind] -> ShowS
showList :: [ResourceOperationKind] -> ShowS
Show, ResourceOperationKind -> ResourceOperationKind -> Bool
(ResourceOperationKind -> ResourceOperationKind -> Bool)
-> (ResourceOperationKind -> ResourceOperationKind -> Bool)
-> Eq ResourceOperationKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ResourceOperationKind -> ResourceOperationKind -> Bool
== :: ResourceOperationKind -> ResourceOperationKind -> Bool
$c/= :: ResourceOperationKind -> ResourceOperationKind -> Bool
/= :: ResourceOperationKind -> ResourceOperationKind -> Bool
Eq, Eq ResourceOperationKind
Eq ResourceOperationKind =>
(ResourceOperationKind -> ResourceOperationKind -> Ordering)
-> (ResourceOperationKind -> ResourceOperationKind -> Bool)
-> (ResourceOperationKind -> ResourceOperationKind -> Bool)
-> (ResourceOperationKind -> ResourceOperationKind -> Bool)
-> (ResourceOperationKind -> ResourceOperationKind -> Bool)
-> (ResourceOperationKind
    -> ResourceOperationKind -> ResourceOperationKind)
-> (ResourceOperationKind
    -> ResourceOperationKind -> ResourceOperationKind)
-> Ord ResourceOperationKind
ResourceOperationKind -> ResourceOperationKind -> Bool
ResourceOperationKind -> ResourceOperationKind -> Ordering
ResourceOperationKind
-> ResourceOperationKind -> ResourceOperationKind
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 :: ResourceOperationKind -> ResourceOperationKind -> Ordering
compare :: ResourceOperationKind -> ResourceOperationKind -> Ordering
$c< :: ResourceOperationKind -> ResourceOperationKind -> Bool
< :: ResourceOperationKind -> ResourceOperationKind -> Bool
$c<= :: ResourceOperationKind -> ResourceOperationKind -> Bool
<= :: ResourceOperationKind -> ResourceOperationKind -> Bool
$c> :: ResourceOperationKind -> ResourceOperationKind -> Bool
> :: ResourceOperationKind -> ResourceOperationKind -> Bool
$c>= :: ResourceOperationKind -> ResourceOperationKind -> Bool
>= :: ResourceOperationKind -> ResourceOperationKind -> Bool
$cmax :: ResourceOperationKind
-> ResourceOperationKind -> ResourceOperationKind
max :: ResourceOperationKind
-> ResourceOperationKind -> ResourceOperationKind
$cmin :: ResourceOperationKind
-> ResourceOperationKind -> ResourceOperationKind
min :: ResourceOperationKind
-> ResourceOperationKind -> ResourceOperationKind
Ord, (forall x. ResourceOperationKind -> Rep ResourceOperationKind x)
-> (forall x. Rep ResourceOperationKind x -> ResourceOperationKind)
-> Generic ResourceOperationKind
forall x. Rep ResourceOperationKind x -> ResourceOperationKind
forall x. ResourceOperationKind -> Rep ResourceOperationKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ResourceOperationKind -> Rep ResourceOperationKind x
from :: forall x. ResourceOperationKind -> Rep ResourceOperationKind x
$cto :: forall x. Rep ResourceOperationKind x -> ResourceOperationKind
to :: forall x. Rep ResourceOperationKind x -> ResourceOperationKind
Generic)
  deriving anyclass (ResourceOperationKind -> ()
(ResourceOperationKind -> ()) -> NFData ResourceOperationKind
forall a. (a -> ()) -> NFData a
$crnf :: ResourceOperationKind -> ()
rnf :: ResourceOperationKind -> ()
NFData, Eq ResourceOperationKind
Eq ResourceOperationKind =>
(Int -> ResourceOperationKind -> Int)
-> (ResourceOperationKind -> Int) -> Hashable ResourceOperationKind
Int -> ResourceOperationKind -> Int
ResourceOperationKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> ResourceOperationKind -> Int
hashWithSalt :: Int -> ResourceOperationKind -> Int
$chash :: ResourceOperationKind -> Int
hash :: ResourceOperationKind -> Int
Hashable)
  deriving ( [ResourceOperationKind] -> Value
[ResourceOperationKind] -> Encoding
ResourceOperationKind -> Bool
ResourceOperationKind -> Value
ResourceOperationKind -> Encoding
(ResourceOperationKind -> Value)
-> (ResourceOperationKind -> Encoding)
-> ([ResourceOperationKind] -> Value)
-> ([ResourceOperationKind] -> Encoding)
-> (ResourceOperationKind -> Bool)
-> ToJSON ResourceOperationKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: ResourceOperationKind -> Value
toJSON :: ResourceOperationKind -> Value
$ctoEncoding :: ResourceOperationKind -> Encoding
toEncoding :: ResourceOperationKind -> Encoding
$ctoJSONList :: [ResourceOperationKind] -> Value
toJSONList :: [ResourceOperationKind] -> Value
$ctoEncodingList :: [ResourceOperationKind] -> Encoding
toEncodingList :: [ResourceOperationKind] -> Encoding
$comitField :: ResourceOperationKind -> Bool
omitField :: ResourceOperationKind -> Bool
Aeson.ToJSON
  , Maybe ResourceOperationKind
Value -> Parser [ResourceOperationKind]
Value -> Parser ResourceOperationKind
(Value -> Parser ResourceOperationKind)
-> (Value -> Parser [ResourceOperationKind])
-> Maybe ResourceOperationKind
-> FromJSON ResourceOperationKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser ResourceOperationKind
parseJSON :: Value -> Parser ResourceOperationKind
$cparseJSONList :: Value -> Parser [ResourceOperationKind]
parseJSONList :: Value -> Parser [ResourceOperationKind]
$comittedField :: Maybe ResourceOperationKind
omittedField :: Maybe ResourceOperationKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum ResourceOperationKind)
  deriving (forall ann. ResourceOperationKind -> Doc ann)
-> (forall ann. [ResourceOperationKind] -> Doc ann)
-> Pretty ResourceOperationKind
forall ann. [ResourceOperationKind] -> Doc ann
forall ann. ResourceOperationKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. ResourceOperationKind -> Doc ann
pretty :: forall ann. ResourceOperationKind -> Doc ann
$cprettyList :: forall ann. [ResourceOperationKind] -> Doc ann
prettyList :: forall ann. [ResourceOperationKind] -> Doc ann
Pretty via (ViaJSON ResourceOperationKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum ResourceOperationKind where
  knownValues :: Set ResourceOperationKind
knownValues = [ResourceOperationKind] -> Set ResourceOperationKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [ResourceOperationKind
ResourceOperationKind_Create
    ,ResourceOperationKind
ResourceOperationKind_Rename
    ,ResourceOperationKind
ResourceOperationKind_Delete]
  type EnumBaseType ResourceOperationKind = Data.Text.Text
  toEnumBaseType :: ResourceOperationKind -> EnumBaseType ResourceOperationKind
toEnumBaseType ResourceOperationKind
ResourceOperationKind_Create = Text
EnumBaseType ResourceOperationKind
"create"
  toEnumBaseType ResourceOperationKind
ResourceOperationKind_Rename = Text
EnumBaseType ResourceOperationKind
"rename"
  toEnumBaseType ResourceOperationKind
ResourceOperationKind_Delete = Text
EnumBaseType ResourceOperationKind
"delete"
  fromEnumBaseType :: EnumBaseType ResourceOperationKind -> Maybe ResourceOperationKind
fromEnumBaseType EnumBaseType ResourceOperationKind
"create" = ResourceOperationKind -> Maybe ResourceOperationKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ResourceOperationKind
ResourceOperationKind_Create
  fromEnumBaseType EnumBaseType ResourceOperationKind
"rename" = ResourceOperationKind -> Maybe ResourceOperationKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ResourceOperationKind
ResourceOperationKind_Rename
  fromEnumBaseType EnumBaseType ResourceOperationKind
"delete" = ResourceOperationKind -> Maybe ResourceOperationKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ResourceOperationKind
ResourceOperationKind_Delete
  fromEnumBaseType EnumBaseType ResourceOperationKind
_ = Maybe ResourceOperationKind
forall a. Maybe a
Nothing