{-# LANGUAGE GADTs #-}
module Log.Kafka
( emptyDetails,
Details,
topic,
partitionId,
key,
contents,
createTime,
logAppendTime,
processAttempt,
assignedPartitions,
pausedPartitions,
timeSinceLastRebalance,
requestId,
mkContents,
Contents,
)
where
import qualified Data.Aeson as Aeson
import qualified Data.Time.Clock as Clock
import qualified Platform
data Details = Details
{
Details -> Maybe Text
topic :: Maybe Text,
Details -> Maybe Int
partitionId :: Maybe Int,
Details -> Maybe Text
key :: Maybe Text,
Details -> Maybe Contents
contents :: Maybe Contents,
Details -> Maybe UTCTime
createTime :: Maybe Clock.UTCTime,
Details -> Maybe UTCTime
logAppendTime :: Maybe Clock.UTCTime,
Details -> Maybe Int
processAttempt :: Maybe Int,
Details -> Maybe Int
assignedPartitions :: Maybe Int,
Details -> Maybe Int
pausedPartitions :: Maybe Int,
Details -> Maybe Float
timeSinceLastRebalance :: Maybe Float,
Details -> Maybe Text
requestId :: Maybe Text
}
deriving ((forall x. Details -> Rep Details x)
-> (forall x. Rep Details x -> Details) -> Generic Details
forall x. Rep Details x -> Details
forall x. Details -> Rep Details x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Details x -> Details
$cfrom :: forall x. Details -> Rep Details x
Generic)
emptyDetails :: Details
emptyDetails :: Details
emptyDetails =
Details :: Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Contents
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe Float
-> Maybe Text
-> Details
Details
{ topic :: Maybe Text
topic = Maybe Text
forall a. Maybe a
Nothing,
partitionId :: Maybe Int
partitionId = Maybe Int
forall a. Maybe a
Nothing,
key :: Maybe Text
key = Maybe Text
forall a. Maybe a
Nothing,
contents :: Maybe Contents
contents = Maybe Contents
forall a. Maybe a
Nothing,
createTime :: Maybe UTCTime
createTime = Maybe UTCTime
forall a. Maybe a
Nothing,
logAppendTime :: Maybe UTCTime
logAppendTime = Maybe UTCTime
forall a. Maybe a
Nothing,
processAttempt :: Maybe Int
processAttempt = Maybe Int
forall a. Maybe a
Nothing,
assignedPartitions :: Maybe Int
assignedPartitions = Maybe Int
forall a. Maybe a
Nothing,
pausedPartitions :: Maybe Int
pausedPartitions = Maybe Int
forall a. Maybe a
Nothing,
timeSinceLastRebalance :: Maybe Float
timeSinceLastRebalance = Maybe Float
forall a. Maybe a
Nothing,
requestId :: Maybe Text
requestId = Maybe Text
forall a. Maybe a
Nothing
}
instance Aeson.ToJSON Details where
toJSON :: Details -> Value
toJSON = Options -> Details -> Value
forall a.
(Generic a, GToJSON' Value Zero (Rep a)) =>
Options -> a -> Value
Aeson.genericToJSON Options
options
toEncoding :: Details -> Encoding
toEncoding = Options -> Details -> Encoding
forall a.
(Generic a, GToJSON' Encoding Zero (Rep a)) =>
Options -> a -> Encoding
Aeson.genericToEncoding Options
options
options :: Aeson.Options
options :: Options
options =
Options
Aeson.defaultOptions
{ fieldLabelModifier :: String -> String
Aeson.fieldLabelModifier = Char -> String -> String
Aeson.camelTo2 Char
'_',
omitNothingFields :: Bool
Aeson.omitNothingFields = Bool
True
}
instance Platform.TracingSpanDetails Details
data Contents where
Contents :: (Aeson.ToJSON a) => a -> Contents
instance Aeson.ToJSON Contents where
toJSON :: Contents -> Value
toJSON (Contents a
x) = a -> Value
forall a. ToJSON a => a -> Value
Aeson.toJSON a
x
toEncoding :: Contents -> Encoding
toEncoding (Contents a
x) = a -> Encoding
forall a. ToJSON a => a -> Encoding
Aeson.toEncoding a
x
mkContents :: Aeson.ToJSON a => a -> Contents
mkContents :: a -> Contents
mkContents = a -> Contents
forall a. ToJSON a => a -> Contents
Contents