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

instance Language.LSP.Protocol.Types.LspEnum.LspEnum InlayHintKind where
  knownValues :: Set InlayHintKind
knownValues = 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 = UInt
1
  toEnumBaseType InlayHintKind
InlayHintKind_Parameter = UInt
2
  fromEnumBaseType :: EnumBaseType InlayHintKind -> Maybe InlayHintKind
fromEnumBaseType EnumBaseType InlayHintKind
1 = forall (f :: * -> *) a. Applicative f => a -> f a
pure InlayHintKind
InlayHintKind_Type
  fromEnumBaseType EnumBaseType InlayHintKind
2 = forall (f :: * -> *) a. Applicative f => a -> f a
pure InlayHintKind
InlayHintKind_Parameter
  fromEnumBaseType EnumBaseType InlayHintKind
_ = forall a. Maybe a
Nothing