///|
fn main raise {
let state = @tracker.State::new()
for step, record in @scenarios.trace() {
// Serialize then parse: exercise the exact public journal boundary.
match @journal.parse_line(@journal.line(record)) {
@journal.Datagram(data, endian) => state.ingest(data, endian~)
@journal.Loss(reason) => state.mark_stale(reason)
}
let view = state.view()
let json : Json = {
"source": "synthetic-demo",
"step": step,
"links": view.links.length(),
"addresses": view.addresses.length(),
"routes": view.routes.length(),
"neighbors": view.neighbors.length(),
"stale": view.stale,
"reasons": view.reasons,
}
println(json.stringify())
}
}