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

{-|

-}
data DidChangeConfigurationRegistrationOptions = DidChangeConfigurationRegistrationOptions 
  { {-|

  -}
  DidChangeConfigurationRegistrationOptions -> Maybe (Text |? [Text])
_section :: (Maybe (Data.Text.Text Language.LSP.Protocol.Types.Common.|? [Data.Text.Text]))
  }
  deriving stock (Int -> DidChangeConfigurationRegistrationOptions -> ShowS
[DidChangeConfigurationRegistrationOptions] -> ShowS
DidChangeConfigurationRegistrationOptions -> String
(Int -> DidChangeConfigurationRegistrationOptions -> ShowS)
-> (DidChangeConfigurationRegistrationOptions -> String)
-> ([DidChangeConfigurationRegistrationOptions] -> ShowS)
-> Show DidChangeConfigurationRegistrationOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DidChangeConfigurationRegistrationOptions -> ShowS
showsPrec :: Int -> DidChangeConfigurationRegistrationOptions -> ShowS
$cshow :: DidChangeConfigurationRegistrationOptions -> String
show :: DidChangeConfigurationRegistrationOptions -> String
$cshowList :: [DidChangeConfigurationRegistrationOptions] -> ShowS
showList :: [DidChangeConfigurationRegistrationOptions] -> ShowS
Show, DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
(DidChangeConfigurationRegistrationOptions
 -> DidChangeConfigurationRegistrationOptions -> Bool)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions -> Bool)
-> Eq DidChangeConfigurationRegistrationOptions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
== :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
$c/= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
/= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
Eq, Eq DidChangeConfigurationRegistrationOptions
Eq DidChangeConfigurationRegistrationOptions =>
(DidChangeConfigurationRegistrationOptions
 -> DidChangeConfigurationRegistrationOptions -> Ordering)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions -> Bool)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions -> Bool)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions -> Bool)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions -> Bool)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions)
-> (DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions
    -> DidChangeConfigurationRegistrationOptions)
-> Ord DidChangeConfigurationRegistrationOptions
DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Ordering
DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
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 :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Ordering
compare :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Ordering
$c< :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
< :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
$c<= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
<= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
$c> :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
> :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
$c>= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
>= :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions -> Bool
$cmax :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
max :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
$cmin :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
min :: DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
-> DidChangeConfigurationRegistrationOptions
Ord, (forall x.
 DidChangeConfigurationRegistrationOptions
 -> Rep DidChangeConfigurationRegistrationOptions x)
-> (forall x.
    Rep DidChangeConfigurationRegistrationOptions x
    -> DidChangeConfigurationRegistrationOptions)
-> Generic DidChangeConfigurationRegistrationOptions
forall x.
Rep DidChangeConfigurationRegistrationOptions x
-> DidChangeConfigurationRegistrationOptions
forall x.
DidChangeConfigurationRegistrationOptions
-> Rep DidChangeConfigurationRegistrationOptions x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
DidChangeConfigurationRegistrationOptions
-> Rep DidChangeConfigurationRegistrationOptions x
from :: forall x.
DidChangeConfigurationRegistrationOptions
-> Rep DidChangeConfigurationRegistrationOptions x
$cto :: forall x.
Rep DidChangeConfigurationRegistrationOptions x
-> DidChangeConfigurationRegistrationOptions
to :: forall x.
Rep DidChangeConfigurationRegistrationOptions x
-> DidChangeConfigurationRegistrationOptions
Generic)
  deriving anyclass (DidChangeConfigurationRegistrationOptions -> ()
(DidChangeConfigurationRegistrationOptions -> ())
-> NFData DidChangeConfigurationRegistrationOptions
forall a. (a -> ()) -> NFData a
$crnf :: DidChangeConfigurationRegistrationOptions -> ()
rnf :: DidChangeConfigurationRegistrationOptions -> ()
NFData, Eq DidChangeConfigurationRegistrationOptions
Eq DidChangeConfigurationRegistrationOptions =>
(Int -> DidChangeConfigurationRegistrationOptions -> Int)
-> (DidChangeConfigurationRegistrationOptions -> Int)
-> Hashable DidChangeConfigurationRegistrationOptions
Int -> DidChangeConfigurationRegistrationOptions -> Int
DidChangeConfigurationRegistrationOptions -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> DidChangeConfigurationRegistrationOptions -> Int
hashWithSalt :: Int -> DidChangeConfigurationRegistrationOptions -> Int
$chash :: DidChangeConfigurationRegistrationOptions -> Int
hash :: DidChangeConfigurationRegistrationOptions -> Int
Hashable)
  deriving (forall ann. DidChangeConfigurationRegistrationOptions -> Doc ann)
-> (forall ann.
    [DidChangeConfigurationRegistrationOptions] -> Doc ann)
-> Pretty DidChangeConfigurationRegistrationOptions
forall ann. [DidChangeConfigurationRegistrationOptions] -> Doc ann
forall ann. DidChangeConfigurationRegistrationOptions -> Doc ann
forall a.
(forall ann. a -> Doc ann)
-> (forall ann. [a] -> Doc ann) -> Pretty a
$cpretty :: forall ann. DidChangeConfigurationRegistrationOptions -> Doc ann
pretty :: forall ann. DidChangeConfigurationRegistrationOptions -> Doc ann
$cprettyList :: forall ann. [DidChangeConfigurationRegistrationOptions] -> Doc ann
prettyList :: forall ann. [DidChangeConfigurationRegistrationOptions] -> Doc ann
Pretty via (ViaJSON DidChangeConfigurationRegistrationOptions)

instance Aeson.ToJSON DidChangeConfigurationRegistrationOptions where
  toJSON :: DidChangeConfigurationRegistrationOptions -> Value
toJSON (DidChangeConfigurationRegistrationOptions Maybe (Text |? [Text])
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
"section" String -> Maybe (Text |? [Text]) -> [Pair]
forall e kv v.
(KeyValue e kv, ToJSON v) =>
String -> Maybe v -> [kv]
Language.LSP.Protocol.Types.Common..=? Maybe (Text |? [Text])
arg0]

instance Aeson.FromJSON DidChangeConfigurationRegistrationOptions where
  parseJSON :: Value -> Parser DidChangeConfigurationRegistrationOptions
parseJSON = String
-> (Object -> Parser DidChangeConfigurationRegistrationOptions)
-> Value
-> Parser DidChangeConfigurationRegistrationOptions
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"DidChangeConfigurationRegistrationOptions" ((Object -> Parser DidChangeConfigurationRegistrationOptions)
 -> Value -> Parser DidChangeConfigurationRegistrationOptions)
-> (Object -> Parser DidChangeConfigurationRegistrationOptions)
-> Value
-> Parser DidChangeConfigurationRegistrationOptions
forall a b. (a -> b) -> a -> b
$ \Object
arg -> Maybe (Text |? [Text]) -> DidChangeConfigurationRegistrationOptions
DidChangeConfigurationRegistrationOptions (Maybe (Text |? [Text])
 -> DidChangeConfigurationRegistrationOptions)
-> Parser (Maybe (Text |? [Text]))
-> Parser DidChangeConfigurationRegistrationOptions
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Maybe (Text |? [Text]))
forall v. FromJSON v => Object -> Key -> Parser (Maybe v)
Language.LSP.Protocol.Types.Common..:!? Key
"section"