///|
/// Debug trace item recorded by EventBus while publishing events.
pub(all) enum TraceKind {
TracePublish
TraceMiddleware
TraceHandler
TraceSchedule
TraceError
} derive(Eq, Debug)
///|
pub(all) struct TraceEntry {
index : Int
kind : TraceKind
event_name : String
actor : String
message : String
} derive(Eq, Debug)
///|
pub fn TraceEntry::new(
index : Int,
kind : TraceKind,
event_name : String,
actor : String,
message : String,
) -> TraceEntry {
{ index, kind, event_name, actor, message }
}
///|
pub fn trace_summary(entries : Array[TraceEntry]) -> Array[String] {
let out : Array[String] = []
for entry in entries {
out.push(
entry.index.to_string() +
":" +
entry.event_name +
":" +
entry.actor +
":" +
entry.message,
)
}
out
}