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

{-|
A pattern kind describing if a glob pattern matches a file a folder or
both.

@since 3.16.0
-}
data FileOperationPatternKind = 
    {-|
  The pattern matches a file only.
  -}
  FileOperationPatternKind_File
  | {-|
  The pattern matches a folder only.
  -}
  FileOperationPatternKind_Folder
  deriving stock (Int -> FileOperationPatternKind -> ShowS
[FileOperationPatternKind] -> ShowS
FileOperationPatternKind -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FileOperationPatternKind] -> ShowS
$cshowList :: [FileOperationPatternKind] -> ShowS
show :: FileOperationPatternKind -> String
$cshow :: FileOperationPatternKind -> String
showsPrec :: Int -> FileOperationPatternKind -> ShowS
$cshowsPrec :: Int -> FileOperationPatternKind -> ShowS
Show, FileOperationPatternKind -> FileOperationPatternKind -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c/= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
== :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c== :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
Eq, Eq FileOperationPatternKind
FileOperationPatternKind -> FileOperationPatternKind -> Bool
FileOperationPatternKind -> FileOperationPatternKind -> Ordering
FileOperationPatternKind
-> FileOperationPatternKind -> FileOperationPatternKind
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
min :: FileOperationPatternKind
-> FileOperationPatternKind -> FileOperationPatternKind
$cmin :: FileOperationPatternKind
-> FileOperationPatternKind -> FileOperationPatternKind
max :: FileOperationPatternKind
-> FileOperationPatternKind -> FileOperationPatternKind
$cmax :: FileOperationPatternKind
-> FileOperationPatternKind -> FileOperationPatternKind
>= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c>= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
> :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c> :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
<= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c<= :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
< :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
$c< :: FileOperationPatternKind -> FileOperationPatternKind -> Bool
compare :: FileOperationPatternKind -> FileOperationPatternKind -> Ordering
$ccompare :: FileOperationPatternKind -> FileOperationPatternKind -> Ordering
Ord, forall x.
Rep FileOperationPatternKind x -> FileOperationPatternKind
forall x.
FileOperationPatternKind -> Rep FileOperationPatternKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep FileOperationPatternKind x -> FileOperationPatternKind
$cfrom :: forall x.
FileOperationPatternKind -> Rep FileOperationPatternKind x
Generic)
  deriving anyclass (FileOperationPatternKind -> ()
forall a. (a -> ()) -> NFData a
rnf :: FileOperationPatternKind -> ()
$crnf :: FileOperationPatternKind -> ()
NFData, Eq FileOperationPatternKind
Int -> FileOperationPatternKind -> Int
FileOperationPatternKind -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: FileOperationPatternKind -> Int
$chash :: FileOperationPatternKind -> Int
hashWithSalt :: Int -> FileOperationPatternKind -> Int
$chashWithSalt :: Int -> FileOperationPatternKind -> Int
Hashable)
  deriving ( [FileOperationPatternKind] -> Encoding
[FileOperationPatternKind] -> Value
FileOperationPatternKind -> Encoding
FileOperationPatternKind -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [FileOperationPatternKind] -> Encoding
$ctoEncodingList :: [FileOperationPatternKind] -> Encoding
toJSONList :: [FileOperationPatternKind] -> Value
$ctoJSONList :: [FileOperationPatternKind] -> Value
toEncoding :: FileOperationPatternKind -> Encoding
$ctoEncoding :: FileOperationPatternKind -> Encoding
toJSON :: FileOperationPatternKind -> Value
$ctoJSON :: FileOperationPatternKind -> Value
Aeson.ToJSON
  , Value -> Parser [FileOperationPatternKind]
Value -> Parser FileOperationPatternKind
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [FileOperationPatternKind]
$cparseJSONList :: Value -> Parser [FileOperationPatternKind]
parseJSON :: Value -> Parser FileOperationPatternKind
$cparseJSON :: Value -> Parser FileOperationPatternKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum FileOperationPatternKind Data.Text.Text)
  deriving forall ann. [FileOperationPatternKind] -> Doc ann
forall ann. FileOperationPatternKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
prettyList :: forall ann. [FileOperationPatternKind] -> Doc ann
$cprettyList :: forall ann. [FileOperationPatternKind] -> Doc ann
pretty :: forall ann. FileOperationPatternKind -> Doc ann
$cpretty :: forall ann. FileOperationPatternKind -> Doc ann
Pretty via (ViaJSON FileOperationPatternKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum FileOperationPatternKind where
  knownValues :: Set FileOperationPatternKind
knownValues = forall a. Ord a => [a] -> Set a
Data.Set.fromList [FileOperationPatternKind
FileOperationPatternKind_File
    ,FileOperationPatternKind
FileOperationPatternKind_Folder]
  type EnumBaseType FileOperationPatternKind = Data.Text.Text
  toEnumBaseType :: FileOperationPatternKind -> EnumBaseType FileOperationPatternKind
toEnumBaseType FileOperationPatternKind
FileOperationPatternKind_File = Text
"file"
  toEnumBaseType FileOperationPatternKind
FileOperationPatternKind_Folder = Text
"folder"
  fromEnumBaseType :: EnumBaseType FileOperationPatternKind
-> Maybe FileOperationPatternKind
fromEnumBaseType EnumBaseType FileOperationPatternKind
"file" = forall (f :: * -> *) a. Applicative f => a -> f a
pure FileOperationPatternKind
FileOperationPatternKind_File
  fromEnumBaseType EnumBaseType FileOperationPatternKind
"folder" = forall (f :: * -> *) a. Applicative f => a -> f a
pure FileOperationPatternKind
FileOperationPatternKind_Folder
  fromEnumBaseType EnumBaseType FileOperationPatternKind
_ = forall a. Maybe a
Nothing