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