{-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveGeneric #-}
module Cardano.BM.Stats.Resources
( Resources(..)
, ResourceStats
, Word64
)
where
import Data.Aeson
import Data.Word
import GHC.Generics (Generic)
type ResourceStats = Resources Word64
data Resources a
= Resources
{ Resources a -> a
rCentiCpu :: !a
, Resources a -> a
rCentiGC :: !a
, Resources a -> a
rCentiMut :: !a
, Resources a -> a
rGcsMajor :: !a
, Resources a -> a
rGcsMinor :: !a
, Resources a -> a
rAlloc :: !a
, Resources a -> a
rLive :: !a
, :: !a
, Resources a -> a
rCentiBlkIO :: !a
, Resources a -> a
rThreads :: !a
}
deriving (a -> Resources b -> Resources a
(a -> b) -> Resources a -> Resources b
(forall a b. (a -> b) -> Resources a -> Resources b)
-> (forall a b. a -> Resources b -> Resources a)
-> Functor Resources
forall a b. a -> Resources b -> Resources a
forall a b. (a -> b) -> Resources a -> Resources b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: a -> Resources b -> Resources a
$c<$ :: forall a b. a -> Resources b -> Resources a
fmap :: (a -> b) -> Resources a -> Resources b
$cfmap :: forall a b. (a -> b) -> Resources a -> Resources b
Functor, (forall x. Resources a -> Rep (Resources a) x)
-> (forall x. Rep (Resources a) x -> Resources a)
-> Generic (Resources a)
forall x. Rep (Resources a) x -> Resources a
forall x. Resources a -> Rep (Resources a) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (Resources a) x -> Resources a
forall a x. Resources a -> Rep (Resources a) x
$cto :: forall a x. Rep (Resources a) x -> Resources a
$cfrom :: forall a x. Resources a -> Rep (Resources a) x
Generic, Int -> Resources a -> ShowS
[Resources a] -> ShowS
Resources a -> String
(Int -> Resources a -> ShowS)
-> (Resources a -> String)
-> ([Resources a] -> ShowS)
-> Show (Resources a)
forall a. Show a => Int -> Resources a -> ShowS
forall a. Show a => [Resources a] -> ShowS
forall a. Show a => Resources a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Resources a] -> ShowS
$cshowList :: forall a. Show a => [Resources a] -> ShowS
show :: Resources a -> String
$cshow :: forall a. Show a => Resources a -> String
showsPrec :: Int -> Resources a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Resources a -> ShowS
Show)
instance Applicative Resources where
pure :: a -> Resources a
pure a
a = a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Resources a
forall a.
a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Resources a
Resources a
a a
a a
a a
a a
a a
a a
a a
a a
a a
a
Resources (a -> b)
f <*> :: Resources (a -> b) -> Resources a -> Resources b
<*> Resources a
x =
Resources :: forall a.
a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Resources a
Resources
{ rCentiCpu :: b
rCentiCpu = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rCentiCpu Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rCentiCpu Resources a
x)
, rCentiGC :: b
rCentiGC = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rCentiGC Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rCentiGC Resources a
x)
, rCentiMut :: b
rCentiMut = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rCentiMut Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rCentiMut Resources a
x)
, rGcsMajor :: b
rGcsMajor = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rGcsMajor Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rGcsMajor Resources a
x)
, rGcsMinor :: b
rGcsMinor = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rGcsMinor Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rGcsMinor Resources a
x)
, rAlloc :: b
rAlloc = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rAlloc Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rAlloc Resources a
x)
, rLive :: b
rLive = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rLive Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rLive Resources a
x)
, rRSS :: b
rRSS = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rRSS Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rRSS Resources a
x)
, rCentiBlkIO :: b
rCentiBlkIO = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rCentiBlkIO Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rCentiBlkIO Resources a
x)
, rThreads :: b
rThreads = Resources (a -> b) -> a -> b
forall a. Resources a -> a
rThreads Resources (a -> b)
f (Resources a -> a
forall a. Resources a -> a
rThreads Resources a
x)
}
encodingOptions :: Options
encodingOptions :: Options
encodingOptions = Options
defaultOptions
{ fieldLabelModifier :: ShowS
fieldLabelModifier = Int -> ShowS
forall a. Int -> [a] -> [a]
drop Int
1
, tagSingleConstructors :: Bool
tagSingleConstructors = Bool
True
, sumEncoding :: SumEncoding
sumEncoding =
SumEncoding
defaultTaggedObject
{ tagFieldName :: String
tagFieldName = String
"kind"
}
}
instance FromJSON a => FromJSON (Resources a) where
parseJSON :: Value -> Parser (Resources a)
parseJSON = Options -> Value -> Parser (Resources a)
forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON Options
encodingOptions
instance ToJSON a => ToJSON (Resources a) where
toJSON :: Resources a -> Value
toJSON = Options -> Resources a -> Value
forall a.
(Generic a, GToJSON' Value Zero (Rep a)) =>
Options -> a -> Value
genericToJSON Options
encodingOptions
toEncoding :: Resources a -> Encoding
toEncoding = Options -> Resources a -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
genericToEncoding Options
encodingOptions