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

{-|
The moniker kind.

@since 3.16.0
-}
data MonikerKind = 
    {-|
  The moniker represent a symbol that is imported into a project
  -}
  MonikerKind_Import
  | {-|
  The moniker represents a symbol that is exported from a project
  -}
  MonikerKind_Export
  | {-|
  The moniker represents a symbol that is local to a project (e.g. a local
  variable of a function, a class not visible outside the project, ...)
  -}
  MonikerKind_Local
  deriving stock (Int -> MonikerKind -> ShowS
[MonikerKind] -> ShowS
MonikerKind -> String
(Int -> MonikerKind -> ShowS)
-> (MonikerKind -> String)
-> ([MonikerKind] -> ShowS)
-> Show MonikerKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MonikerKind -> ShowS
showsPrec :: Int -> MonikerKind -> ShowS
$cshow :: MonikerKind -> String
show :: MonikerKind -> String
$cshowList :: [MonikerKind] -> ShowS
showList :: [MonikerKind] -> ShowS
Show, MonikerKind -> MonikerKind -> Bool
(MonikerKind -> MonikerKind -> Bool)
-> (MonikerKind -> MonikerKind -> Bool) -> Eq MonikerKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MonikerKind -> MonikerKind -> Bool
== :: MonikerKind -> MonikerKind -> Bool
$c/= :: MonikerKind -> MonikerKind -> Bool
/= :: MonikerKind -> MonikerKind -> Bool
Eq, Eq MonikerKind
Eq MonikerKind =>
(MonikerKind -> MonikerKind -> Ordering)
-> (MonikerKind -> MonikerKind -> Bool)
-> (MonikerKind -> MonikerKind -> Bool)
-> (MonikerKind -> MonikerKind -> Bool)
-> (MonikerKind -> MonikerKind -> Bool)
-> (MonikerKind -> MonikerKind -> MonikerKind)
-> (MonikerKind -> MonikerKind -> MonikerKind)
-> Ord MonikerKind
MonikerKind -> MonikerKind -> Bool
MonikerKind -> MonikerKind -> Ordering
MonikerKind -> MonikerKind -> MonikerKind
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 :: MonikerKind -> MonikerKind -> Ordering
compare :: MonikerKind -> MonikerKind -> Ordering
$c< :: MonikerKind -> MonikerKind -> Bool
< :: MonikerKind -> MonikerKind -> Bool
$c<= :: MonikerKind -> MonikerKind -> Bool
<= :: MonikerKind -> MonikerKind -> Bool
$c> :: MonikerKind -> MonikerKind -> Bool
> :: MonikerKind -> MonikerKind -> Bool
$c>= :: MonikerKind -> MonikerKind -> Bool
>= :: MonikerKind -> MonikerKind -> Bool
$cmax :: MonikerKind -> MonikerKind -> MonikerKind
max :: MonikerKind -> MonikerKind -> MonikerKind
$cmin :: MonikerKind -> MonikerKind -> MonikerKind
min :: MonikerKind -> MonikerKind -> MonikerKind
Ord, (forall x. MonikerKind -> Rep MonikerKind x)
-> (forall x. Rep MonikerKind x -> MonikerKind)
-> Generic MonikerKind
forall x. Rep MonikerKind x -> MonikerKind
forall x. MonikerKind -> Rep MonikerKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MonikerKind -> Rep MonikerKind x
from :: forall x. MonikerKind -> Rep MonikerKind x
$cto :: forall x. Rep MonikerKind x -> MonikerKind
to :: forall x. Rep MonikerKind x -> MonikerKind
Generic)
  deriving anyclass (MonikerKind -> ()
(MonikerKind -> ()) -> NFData MonikerKind
forall a. (a -> ()) -> NFData a
$crnf :: MonikerKind -> ()
rnf :: MonikerKind -> ()
NFData, Eq MonikerKind
Eq MonikerKind =>
(Int -> MonikerKind -> Int)
-> (MonikerKind -> Int) -> Hashable MonikerKind
Int -> MonikerKind -> Int
MonikerKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> MonikerKind -> Int
hashWithSalt :: Int -> MonikerKind -> Int
$chash :: MonikerKind -> Int
hash :: MonikerKind -> Int
Hashable)
  deriving ( [MonikerKind] -> Value
[MonikerKind] -> Encoding
MonikerKind -> Bool
MonikerKind -> Value
MonikerKind -> Encoding
(MonikerKind -> Value)
-> (MonikerKind -> Encoding)
-> ([MonikerKind] -> Value)
-> ([MonikerKind] -> Encoding)
-> (MonikerKind -> Bool)
-> ToJSON MonikerKind
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: MonikerKind -> Value
toJSON :: MonikerKind -> Value
$ctoEncoding :: MonikerKind -> Encoding
toEncoding :: MonikerKind -> Encoding
$ctoJSONList :: [MonikerKind] -> Value
toJSONList :: [MonikerKind] -> Value
$ctoEncodingList :: [MonikerKind] -> Encoding
toEncodingList :: [MonikerKind] -> Encoding
$comitField :: MonikerKind -> Bool
omitField :: MonikerKind -> Bool
Aeson.ToJSON
  , Maybe MonikerKind
Value -> Parser [MonikerKind]
Value -> Parser MonikerKind
(Value -> Parser MonikerKind)
-> (Value -> Parser [MonikerKind])
-> Maybe MonikerKind
-> FromJSON MonikerKind
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser MonikerKind
parseJSON :: Value -> Parser MonikerKind
$cparseJSONList :: Value -> Parser [MonikerKind]
parseJSONList :: Value -> Parser [MonikerKind]
$comittedField :: Maybe MonikerKind
omittedField :: Maybe MonikerKind
Aeson.FromJSON ) via (Language.LSP.Protocol.Types.LspEnum.AsLspEnum MonikerKind)
  deriving (forall ann. MonikerKind -> Doc ann)
-> (forall ann. [MonikerKind] -> Doc ann) -> Pretty MonikerKind
forall ann. [MonikerKind] -> Doc ann
forall ann. MonikerKind -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. MonikerKind -> Doc ann
pretty :: forall ann. MonikerKind -> Doc ann
$cprettyList :: forall ann. [MonikerKind] -> Doc ann
prettyList :: forall ann. [MonikerKind] -> Doc ann
Pretty via (ViaJSON MonikerKind)

instance Language.LSP.Protocol.Types.LspEnum.LspEnum MonikerKind where
  knownValues :: Set MonikerKind
knownValues = [MonikerKind] -> Set MonikerKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [MonikerKind
MonikerKind_Import
    ,MonikerKind
MonikerKind_Export
    ,MonikerKind
MonikerKind_Local]
  type EnumBaseType MonikerKind = Data.Text.Text
  toEnumBaseType :: MonikerKind -> EnumBaseType MonikerKind
toEnumBaseType MonikerKind
MonikerKind_Import = Text
EnumBaseType MonikerKind
"import"
  toEnumBaseType MonikerKind
MonikerKind_Export = Text
EnumBaseType MonikerKind
"export"
  toEnumBaseType MonikerKind
MonikerKind_Local = Text
EnumBaseType MonikerKind
"local"
  fromEnumBaseType :: EnumBaseType MonikerKind -> Maybe MonikerKind
fromEnumBaseType EnumBaseType MonikerKind
"import" = MonikerKind -> Maybe MonikerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MonikerKind
MonikerKind_Import
  fromEnumBaseType EnumBaseType MonikerKind
"export" = MonikerKind -> Maybe MonikerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MonikerKind
MonikerKind_Export
  fromEnumBaseType EnumBaseType MonikerKind
"local" = MonikerKind -> Maybe MonikerKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure MonikerKind
MonikerKind_Local
  fromEnumBaseType EnumBaseType MonikerKind
_ = Maybe MonikerKind
forall a. Maybe a
Nothing