{-# OPTIONS_GHC -Wno-unused-imports #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
{-# OPTIONS_GHC -Wno-deprecations #-}
module Language.LSP.Protocol.Internal.Types.TypeDefinitionOptions 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 Language.LSP.Protocol.Types.Common
data TypeDefinitionOptions = TypeDefinitionOptions
{
TypeDefinitionOptions -> Maybe Bool
_workDoneProgress :: (Maybe Bool)
}
deriving stock (Int -> TypeDefinitionOptions -> ShowS
[TypeDefinitionOptions] -> ShowS
TypeDefinitionOptions -> String
(Int -> TypeDefinitionOptions -> ShowS)
-> (TypeDefinitionOptions -> String)
-> ([TypeDefinitionOptions] -> ShowS)
-> Show TypeDefinitionOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TypeDefinitionOptions -> ShowS
showsPrec :: Int -> TypeDefinitionOptions -> ShowS
$cshow :: TypeDefinitionOptions -> String
show :: TypeDefinitionOptions -> String
$cshowList :: [TypeDefinitionOptions] -> ShowS
showList :: [TypeDefinitionOptions] -> ShowS
Show, TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
(TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> (TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> Eq TypeDefinitionOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
== :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
$c/= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
/= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
Eq, Eq TypeDefinitionOptions
Eq TypeDefinitionOptions =>
(TypeDefinitionOptions -> TypeDefinitionOptions -> Ordering)
-> (TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> (TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> (TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> (TypeDefinitionOptions -> TypeDefinitionOptions -> Bool)
-> (TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions)
-> (TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions)
-> Ord TypeDefinitionOptions
TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
TypeDefinitionOptions -> TypeDefinitionOptions -> Ordering
TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions
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 :: TypeDefinitionOptions -> TypeDefinitionOptions -> Ordering
compare :: TypeDefinitionOptions -> TypeDefinitionOptions -> Ordering
$c< :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
< :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
$c<= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
<= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
$c> :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
> :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
$c>= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
>= :: TypeDefinitionOptions -> TypeDefinitionOptions -> Bool
$cmax :: TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions
max :: TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions
$cmin :: TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions
min :: TypeDefinitionOptions
-> TypeDefinitionOptions -> TypeDefinitionOptions
Ord, (forall x. TypeDefinitionOptions -> Rep TypeDefinitionOptions x)
-> (forall x. Rep TypeDefinitionOptions x -> TypeDefinitionOptions)
-> Generic TypeDefinitionOptions
forall x. Rep TypeDefinitionOptions x -> TypeDefinitionOptions
forall x. TypeDefinitionOptions -> Rep TypeDefinitionOptions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. TypeDefinitionOptions -> Rep TypeDefinitionOptions x
from :: forall x. TypeDefinitionOptions -> Rep TypeDefinitionOptions x
$cto :: forall x. Rep TypeDefinitionOptions x -> TypeDefinitionOptions
to :: forall x. Rep TypeDefinitionOptions x -> TypeDefinitionOptions
Generic)
deriving anyclass (TypeDefinitionOptions -> ()
(TypeDefinitionOptions -> ()) -> NFData TypeDefinitionOptions
forall a. (a -> ()) -> NFData a
$crnf :: TypeDefinitionOptions -> ()
rnf :: TypeDefinitionOptions -> ()
NFData, Eq TypeDefinitionOptions
Eq TypeDefinitionOptions =>
(Int -> TypeDefinitionOptions -> Int)
-> (TypeDefinitionOptions -> Int) -> Hashable TypeDefinitionOptions
Int -> TypeDefinitionOptions -> Int
TypeDefinitionOptions -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> TypeDefinitionOptions -> Int
hashWithSalt :: Int -> TypeDefinitionOptions -> Int
$chash :: TypeDefinitionOptions -> Int
hash :: TypeDefinitionOptions -> Int
Hashable)
deriving (forall ann. TypeDefinitionOptions -> Doc ann)
-> (forall ann. [TypeDefinitionOptions] -> Doc ann)
-> Pretty TypeDefinitionOptions
forall ann. [TypeDefinitionOptions] -> Doc ann
forall ann. TypeDefinitionOptions -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. TypeDefinitionOptions -> Doc ann
pretty :: forall ann. TypeDefinitionOptions -> Doc ann
$cprettyList :: forall ann. [TypeDefinitionOptions] -> Doc ann
prettyList :: forall ann. [TypeDefinitionOptions] -> Doc ann
Pretty via (ViaJSON TypeDefinitionOptions)
instance Aeson.ToJSON TypeDefinitionOptions where
toJSON :: TypeDefinitionOptions -> Value
toJSON (TypeDefinitionOptions Maybe Bool
arg0) = [Pair] -> Value
Aeson.object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat ([[Pair]] -> [Pair]) -> [[Pair]] -> [Pair]
forall a b. (a -> b) -> a -> b
$ [String
"workDoneProgress" String -> Maybe Bool -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe Bool
arg0]
instance Aeson.FromJSON TypeDefinitionOptions where
parseJSON :: Value -> Parser TypeDefinitionOptions
parseJSON = String
-> (Object -> Parser TypeDefinitionOptions)
-> Value
-> Parser TypeDefinitionOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"TypeDefinitionOptions" ((Object -> Parser TypeDefinitionOptions)
-> Value -> Parser TypeDefinitionOptions)
-> (Object -> Parser TypeDefinitionOptions)
-> Value
-> Parser TypeDefinitionOptions
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe Bool -> TypeDefinitionOptions
TypeDefinitionOptions (Maybe Bool -> TypeDefinitionOptions)
-> Parser (Maybe Bool) -> Parser TypeDefinitionOptions
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Maybe Bool)
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"workDoneProgress"