{-# LANGUAGE DeriveGeneric #-}
{-# Language DerivingStrategies #-}
{-# Language DeriveAnyClass #-}
module Cardano.Logging.Types.NodeInfo
( NodeInfo (..)
)
where
import Control.DeepSeq (NFData)
import Data.Aeson (FromJSON, ToJSON)
import Data.Text (Text)
import Data.Time (UTCTime)
import GHC.Generics (Generic)
data NodeInfo = NodeInfo
{ NodeInfo -> Text
niName :: Text
, NodeInfo -> Text
niProtocol :: Text
, NodeInfo -> Text
niVersion :: Text
, NodeInfo -> Text
niCommit :: Text
, NodeInfo -> UTCTime
niStartTime :: UTCTime
, NodeInfo -> UTCTime
niSystemStartTime :: UTCTime
}
deriving stock (NodeInfo -> NodeInfo -> Bool
(NodeInfo -> NodeInfo -> Bool)
-> (NodeInfo -> NodeInfo -> Bool) -> Eq NodeInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NodeInfo -> NodeInfo -> Bool
== :: NodeInfo -> NodeInfo -> Bool
$c/= :: NodeInfo -> NodeInfo -> Bool
/= :: NodeInfo -> NodeInfo -> Bool
Eq, Int -> NodeInfo -> ShowS
[NodeInfo] -> ShowS
NodeInfo -> String
(Int -> NodeInfo -> ShowS)
-> (NodeInfo -> String) -> ([NodeInfo] -> ShowS) -> Show NodeInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NodeInfo -> ShowS
showsPrec :: Int -> NodeInfo -> ShowS
$cshow :: NodeInfo -> String
show :: NodeInfo -> String
$cshowList :: [NodeInfo] -> ShowS
showList :: [NodeInfo] -> ShowS
Show, (forall x. NodeInfo -> Rep NodeInfo x)
-> (forall x. Rep NodeInfo x -> NodeInfo) -> Generic NodeInfo
forall x. Rep NodeInfo x -> NodeInfo
forall x. NodeInfo -> Rep NodeInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. NodeInfo -> Rep NodeInfo x
from :: forall x. NodeInfo -> Rep NodeInfo x
$cto :: forall x. Rep NodeInfo x -> NodeInfo
to :: forall x. Rep NodeInfo x -> NodeInfo
Generic)
deriving anyclass (NodeInfo -> ()
(NodeInfo -> ()) -> NFData NodeInfo
forall a. (a -> ()) -> NFData a
$crnf :: NodeInfo -> ()
rnf :: NodeInfo -> ()
NFData, [NodeInfo] -> Encoding
[NodeInfo] -> Value
NodeInfo -> Bool
NodeInfo -> Encoding
NodeInfo -> Value
(NodeInfo -> Value)
-> (NodeInfo -> Encoding)
-> ([NodeInfo] -> Value)
-> ([NodeInfo] -> Encoding)
-> (NodeInfo -> Bool)
-> ToJSON NodeInfo
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: NodeInfo -> Value
toJSON :: NodeInfo -> Value
$ctoEncoding :: NodeInfo -> Encoding
toEncoding :: NodeInfo -> Encoding
$ctoJSONList :: [NodeInfo] -> Value
toJSONList :: [NodeInfo] -> Value
$ctoEncodingList :: [NodeInfo] -> Encoding
toEncodingList :: [NodeInfo] -> Encoding
$comitField :: NodeInfo -> Bool
omitField :: NodeInfo -> Bool
ToJSON, Maybe NodeInfo
Value -> Parser [NodeInfo]
Value -> Parser NodeInfo
(Value -> Parser NodeInfo)
-> (Value -> Parser [NodeInfo])
-> Maybe NodeInfo
-> FromJSON NodeInfo
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
$cparseJSON :: Value -> Parser NodeInfo
parseJSON :: Value -> Parser NodeInfo
$cparseJSONList :: Value -> Parser [NodeInfo]
parseJSONList :: Value -> Parser [NodeInfo]
$comittedField :: Maybe NodeInfo
omittedField :: Maybe NodeInfo
FromJSON)