{- 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.InlayHintKind 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 Language.LSP.Protocol.Types.Common
import qualified Language.LSP.Protocol.Types.LspEnum

{-|
Inlay hint kinds.

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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum InlayHintKind where
  knownValues :: Set InlayHintKind
knownValues = [InlayHintKind] -> Set InlayHintKind
forall a. Ord a => [a] -> Set a
Data.Set.fromList [InlayHintKind
InlayHintKind_Type,InlayHintKind
InlayHintKind_Parameter]
  type EnumBaseType InlayHintKind = Language.LSP.Protocol.Types.Common.UInt
  toEnumBaseType :: InlayHintKind -> EnumBaseType InlayHintKind
toEnumBaseType InlayHintKind
InlayHintKind_Type = EnumBaseType InlayHintKind
UInt
1
  toEnumBaseType InlayHintKind
InlayHintKind_Parameter = EnumBaseType InlayHintKind
UInt
2
  fromEnumBaseType :: EnumBaseType InlayHintKind -> Maybe InlayHintKind
fromEnumBaseType EnumBaseType InlayHintKind
1 = InlayHintKind -> Maybe InlayHintKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure InlayHintKind
InlayHintKind_Type
  fromEnumBaseType EnumBaseType InlayHintKind
2 = InlayHintKind -> Maybe InlayHintKind
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure InlayHintKind
InlayHintKind_Parameter
  fromEnumBaseType EnumBaseType InlayHintKind
_ = Maybe InlayHintKind
forall a. Maybe a
Nothing