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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum FileOperationPatternKind where
  knownValues :: Set FileOperationPatternKind
knownValues = [FileOperationPatternKind] -> Set FileOperationPatternKind
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
EnumBaseType FileOperationPatternKind
"file"
  toEnumBaseType FileOperationPatternKind
FileOperationPatternKind_Folder = Text
EnumBaseType FileOperationPatternKind
"folder"
  fromEnumBaseType :: EnumBaseType FileOperationPatternKind
-> Maybe FileOperationPatternKind
fromEnumBaseType EnumBaseType FileOperationPatternKind
"file" = FileOperationPatternKind -> Maybe FileOperationPatternKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FileOperationPatternKind
FileOperationPatternKind_File
  fromEnumBaseType EnumBaseType FileOperationPatternKind
"folder" = FileOperationPatternKind -> Maybe FileOperationPatternKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure FileOperationPatternKind
FileOperationPatternKind_Folder
  fromEnumBaseType EnumBaseType FileOperationPatternKind
_ = Maybe FileOperationPatternKind
forall a. Maybe a
Nothing