{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Network.Tracing.Driver () where
import "aeson" Data.Aeson (Value (String), (.=))
import "ouroboros-network" Ouroboros.Network.Driver.Simple qualified as Simple
import "ouroboros-network" Ouroboros.Network.Driver.Stateful qualified as Stateful
import "trace-dispatcher" Cardano.Logging
import "typed-protocols" Network.TypedProtocol.Codec qualified as Simple
import "typed-protocols" Network.TypedProtocol.Stateful.Codec qualified as Stateful
instance LogFormatting (Simple.AnyMessage ps)
=> LogFormatting (Simple.TraceSendRecv ps) where
forMachine :: DetailLevel -> TraceSendRecv ps -> Object
forMachine DetailLevel
dtal (Simple.TraceSendMsg AnyMessage ps
m) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Send" , Key
"msg" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> AnyMessage ps -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal AnyMessage ps
m ]
forMachine DetailLevel
dtal (Simple.TraceRecvMsg AnyMessage ps
m) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Recv" , Key
"msg" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> AnyMessage ps -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal AnyMessage ps
m ]
forHuman :: TraceSendRecv ps -> Text
forHuman (Simple.TraceSendMsg AnyMessage ps
m) = Text
"Send: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> AnyMessage ps -> Text
forall a. LogFormatting a => a -> Text
forHuman AnyMessage ps
m
forHuman (Simple.TraceRecvMsg AnyMessage ps
m) = Text
"Receive: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> AnyMessage ps -> Text
forall a. LogFormatting a => a -> Text
forHuman AnyMessage ps
m
asMetrics :: TraceSendRecv ps -> [Metric]
asMetrics (Simple.TraceSendMsg AnyMessage ps
m) = AnyMessage ps -> [Metric]
forall a. LogFormatting a => a -> [Metric]
asMetrics AnyMessage ps
m
asMetrics (Simple.TraceRecvMsg AnyMessage ps
m) = AnyMessage ps -> [Metric]
forall a. LogFormatting a => a -> [Metric]
asMetrics AnyMessage ps
m
instance LogFormatting (Stateful.AnyMessage ps f)
=> LogFormatting (Stateful.TraceSendRecv ps f) where
forMachine :: DetailLevel -> TraceSendRecv ps f -> Object
forMachine DetailLevel
dtal (Stateful.TraceSendMsg AnyMessage ps f
m) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Send" , Key
"msg" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> AnyMessage ps f -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal AnyMessage ps f
m ]
forMachine DetailLevel
dtal (Stateful.TraceRecvMsg AnyMessage ps f
m) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
[ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"Recv" , Key
"msg" Key -> Object -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DetailLevel -> AnyMessage ps f -> Object
forall a. LogFormatting a => DetailLevel -> a -> Object
forMachine DetailLevel
dtal AnyMessage ps f
m ]
forHuman :: TraceSendRecv ps f -> Text
forHuman (Stateful.TraceSendMsg AnyMessage ps f
m) = Text
"Send: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> AnyMessage ps f -> Text
forall a. LogFormatting a => a -> Text
forHuman AnyMessage ps f
m
forHuman (Stateful.TraceRecvMsg AnyMessage ps f
m) = Text
"Receive: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> AnyMessage ps f -> Text
forall a. LogFormatting a => a -> Text
forHuman AnyMessage ps f
m
asMetrics :: TraceSendRecv ps f -> [Metric]
asMetrics (Stateful.TraceSendMsg AnyMessage ps f
m) = AnyMessage ps f -> [Metric]
forall a. LogFormatting a => a -> [Metric]
asMetrics AnyMessage ps f
m
asMetrics (Stateful.TraceRecvMsg AnyMessage ps f
m) = AnyMessage ps f -> [Metric]
forall a. LogFormatting a => a -> [Metric]
asMetrics AnyMessage ps f
m
instance MetaTrace (Simple.AnyMessage ps) =>
MetaTrace (Simple.TraceSendRecv ps) where
namespaceFor :: TraceSendRecv ps -> Namespace (TraceSendRecv ps)
namespaceFor (Simple.TraceSendMsg AnyMessage ps
msg) =
Text -> Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Send" (AnyMessage ps -> Namespace (AnyMessage ps)
forall a. MetaTrace a => a -> Namespace a
namespaceFor AnyMessage ps
msg)
namespaceFor (Simple.TraceRecvMsg AnyMessage ps
msg) =
Text -> Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Receive" (AnyMessage ps -> Namespace (AnyMessage ps)
forall a. MetaTrace a => a -> Namespace a
namespaceFor AnyMessage ps
msg)
severityFor :: Namespace (TraceSendRecv ps)
-> Maybe (TraceSendRecv ps) -> Maybe SeverityS
severityFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
severityFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
severityFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
severityFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
severityFor Namespace (TraceSendRecv ps)
_ Maybe (TraceSendRecv ps)
_ = Maybe SeverityS
forall a. Maybe a
Nothing
privacyFor :: Namespace (TraceSendRecv ps)
-> Maybe (TraceSendRecv ps) -> Maybe Privacy
privacyFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps) -> Maybe (AnyMessage ps) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
privacyFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps) -> Maybe (AnyMessage ps) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
privacyFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps) -> Maybe (AnyMessage ps) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
privacyFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps) -> Maybe (AnyMessage ps) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
privacyFor Namespace (TraceSendRecv ps)
_ Maybe (TraceSendRecv ps)
_ = Maybe Privacy
forall a. Maybe a
Nothing
detailsFor :: Namespace (TraceSendRecv ps)
-> Maybe (TraceSendRecv ps) -> Maybe DetailLevel
detailsFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
detailsFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
detailsFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Simple.TraceSendMsg AnyMessage ps
msg)) =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps -> Maybe (AnyMessage ps)
forall a. a -> Maybe a
Just AnyMessage ps
msg)
detailsFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps)
Nothing =
Namespace (AnyMessage ps)
-> Maybe (AnyMessage ps) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Simple.AnyMessage ps)) Maybe (AnyMessage ps)
forall a. Maybe a
Nothing
detailsFor Namespace (TraceSendRecv ps)
_ Maybe (TraceSendRecv ps)
_ = Maybe DetailLevel
forall a. Maybe a
Nothing
metricsDocFor :: Namespace (TraceSendRecv ps) -> [(Text, Text)]
metricsDocFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) =
Namespace (AnyMessage ps) -> [(Text, Text)]
forall a. MetaTrace a => Namespace a -> [(Text, Text)]
metricsDocFor (Namespace (ZonkAny 6) -> Namespace (AnyMessage ps)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 6)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Simple.AnyMessage ps))
metricsDocFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) =
Namespace (AnyMessage ps) -> [(Text, Text)]
forall a. MetaTrace a => Namespace a -> [(Text, Text)]
metricsDocFor (Namespace (ZonkAny 7) -> Namespace (AnyMessage ps)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 7)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Simple.AnyMessage ps))
metricsDocFor Namespace (TraceSendRecv ps)
_ = []
documentFor :: Namespace (TraceSendRecv ps) -> Maybe Text
documentFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) =
Namespace (AnyMessage ps) -> Maybe Text
forall a. MetaTrace a => Namespace a -> Maybe Text
documentFor (Namespace (ZonkAny 4) -> Namespace (AnyMessage ps)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 4)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Simple.AnyMessage ps))
documentFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) =
Namespace (AnyMessage ps) -> Maybe Text
forall a. MetaTrace a => Namespace a -> Maybe Text
documentFor (Namespace (ZonkAny 5) -> Namespace (AnyMessage ps)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 5)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Simple.AnyMessage ps))
documentFor Namespace (TraceSendRecv ps)
_ = Maybe Text
forall a. Maybe a
Nothing
allNamespaces :: [Namespace (TraceSendRecv ps)]
allNamespaces =
let cn :: [Namespace (AnyMessage ps)]
cn = [Namespace (AnyMessage ps)]
forall a. MetaTrace a => [Namespace a]
allNamespaces :: [Namespace (Simple.AnyMessage ps)]
in (Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps))
-> [Namespace (AnyMessage ps)] -> [Namespace (TraceSendRecv ps)]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Send") [Namespace (AnyMessage ps)]
cn [Namespace (TraceSendRecv ps)]
-> [Namespace (TraceSendRecv ps)] -> [Namespace (TraceSendRecv ps)]
forall a. [a] -> [a] -> [a]
++ (Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps))
-> [Namespace (AnyMessage ps)] -> [Namespace (TraceSendRecv ps)]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> Namespace (AnyMessage ps) -> Namespace (TraceSendRecv ps)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Receive") [Namespace (AnyMessage ps)]
cn
instance MetaTrace (Stateful.AnyMessage ps f) =>
MetaTrace (Stateful.TraceSendRecv ps f) where
namespaceFor :: TraceSendRecv ps f -> Namespace (TraceSendRecv ps f)
namespaceFor (Stateful.TraceSendMsg AnyMessage ps f
msg) =
Text
-> Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Send" (AnyMessage ps f -> Namespace (AnyMessage ps f)
forall a. MetaTrace a => a -> Namespace a
namespaceFor AnyMessage ps f
msg)
namespaceFor (Stateful.TraceRecvMsg AnyMessage ps f
msg) =
Text
-> Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Receive" (AnyMessage ps f -> Namespace (AnyMessage ps f)
forall a. MetaTrace a => a -> Namespace a
namespaceFor AnyMessage ps f
msg)
severityFor :: Namespace (TraceSendRecv ps f)
-> Maybe (TraceSendRecv ps f) -> Maybe SeverityS
severityFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
severityFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
severityFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
severityFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe SeverityS
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe SeverityS
severityFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
severityFor Namespace (TraceSendRecv ps f)
_ Maybe (TraceSendRecv ps f)
_ = Maybe SeverityS
forall a. Maybe a
Nothing
privacyFor :: Namespace (TraceSendRecv ps f)
-> Maybe (TraceSendRecv ps f) -> Maybe Privacy
privacyFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
privacyFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
privacyFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
privacyFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe Privacy
forall a. MetaTrace a => Namespace a -> Maybe a -> Maybe Privacy
privacyFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
privacyFor Namespace (TraceSendRecv ps f)
_ Maybe (TraceSendRecv ps f)
_ = Maybe Privacy
forall a. Maybe a
Nothing
detailsFor :: Namespace (TraceSendRecv ps f)
-> Maybe (TraceSendRecv ps f) -> Maybe DetailLevel
detailsFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
detailsFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
detailsFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) (Just (Stateful.TraceSendMsg AnyMessage ps f
msg)) =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) (AnyMessage ps f -> Maybe (AnyMessage ps f)
forall a. a -> Maybe a
Just AnyMessage ps f
msg)
detailsFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) Maybe (TraceSendRecv ps f)
Nothing =
Namespace (AnyMessage ps f)
-> Maybe (AnyMessage ps f) -> Maybe DetailLevel
forall a.
MetaTrace a =>
Namespace a -> Maybe a -> Maybe DetailLevel
detailsFor ([Text] -> [Text] -> Namespace (AnyMessage ps f)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl :: Namespace (Stateful.AnyMessage ps f)) Maybe (AnyMessage ps f)
forall a. Maybe a
Nothing
detailsFor Namespace (TraceSendRecv ps f)
_ Maybe (TraceSendRecv ps f)
_ = Maybe DetailLevel
forall a. Maybe a
Nothing
metricsDocFor :: Namespace (TraceSendRecv ps f) -> [(Text, Text)]
metricsDocFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) =
Namespace (AnyMessage ps f) -> [(Text, Text)]
forall a. MetaTrace a => Namespace a -> [(Text, Text)]
metricsDocFor (Namespace (ZonkAny 2) -> Namespace (AnyMessage ps f)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 2)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Stateful.AnyMessage ps f))
metricsDocFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) =
Namespace (AnyMessage ps f) -> [(Text, Text)]
forall a. MetaTrace a => Namespace a -> [(Text, Text)]
metricsDocFor (Namespace (ZonkAny 3) -> Namespace (AnyMessage ps f)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 3)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Stateful.AnyMessage ps f))
metricsDocFor Namespace (TraceSendRecv ps f)
_ = []
documentFor :: Namespace (TraceSendRecv ps f) -> Maybe Text
documentFor (Namespace [Text]
out (Text
"Send" : [Text]
tl)) =
Namespace (AnyMessage ps f) -> Maybe Text
forall a. MetaTrace a => Namespace a -> Maybe Text
documentFor (Namespace (ZonkAny 0) -> Namespace (AnyMessage ps f)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 0)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Stateful.AnyMessage ps f))
documentFor (Namespace [Text]
out (Text
"Receive" : [Text]
tl)) =
Namespace (AnyMessage ps f) -> Maybe Text
forall a. MetaTrace a => Namespace a -> Maybe Text
documentFor (Namespace (ZonkAny 1) -> Namespace (AnyMessage ps f)
forall a b. Namespace a -> Namespace b
nsCast ([Text] -> [Text] -> Namespace (ZonkAny 1)
forall a. [Text] -> [Text] -> Namespace a
Namespace [Text]
out [Text]
tl) :: Namespace (Stateful.AnyMessage ps f))
documentFor Namespace (TraceSendRecv ps f)
_ = Maybe Text
forall a. Maybe a
Nothing
allNamespaces :: [Namespace (TraceSendRecv ps f)]
allNamespaces =
let cn :: [Namespace (AnyMessage ps f)]
cn = [Namespace (AnyMessage ps f)]
forall a. MetaTrace a => [Namespace a]
allNamespaces :: [Namespace (Stateful.AnyMessage ps f)]
in (Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f))
-> [Namespace (AnyMessage ps f)]
-> [Namespace (TraceSendRecv ps f)]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text
-> Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Send") [Namespace (AnyMessage ps f)]
cn [Namespace (TraceSendRecv ps f)]
-> [Namespace (TraceSendRecv ps f)]
-> [Namespace (TraceSendRecv ps f)]
forall a. [a] -> [a] -> [a]
++ (Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f))
-> [Namespace (AnyMessage ps f)]
-> [Namespace (TraceSendRecv ps f)]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text
-> Namespace (AnyMessage ps f) -> Namespace (TraceSendRecv ps f)
forall a b. Text -> Namespace a -> Namespace b
nsPrependInner Text
"Receive") [Namespace (AnyMessage ps f)]
cn