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

instance Aeson.ToJSON CancelParams where
  toJSON :: CancelParams -> Value
toJSON (CancelParams Int32 |? 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
$  [[Key
"id" Key -> (Int32 |? Text) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
Aeson..= Int32 |? Text
arg0]]

instance Aeson.FromJSON CancelParams where
  parseJSON :: Value -> Parser CancelParams
parseJSON = String
-> (Object -> Parser CancelParams) -> Value -> Parser CancelParams
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"CancelParams" ((Object -> Parser CancelParams) -> Value -> Parser CancelParams)
-> (Object -> Parser CancelParams) -> Value -> Parser CancelParams
forall a b. (a -> b) -> a -> b
$ \Object
arg -> (Int32 |? Text) -> CancelParams
CancelParams ((Int32 |? Text) -> CancelParams)
-> Parser (Int32 |? Text) -> Parser CancelParams
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
arg Object -> Key -> Parser (Int32 |? Text)
forall a. FromJSON a => Object -> Key -> Parser a
Aeson..: Key
"id"