Monorepo for Tangled
tangled.org
1use std::time::Duration;
2
3use bobbin_ingest::{DisconnectSnapshot, WarmingBufferSnapshot, WarmingShadowSnapshot};
4use bobbin_runtime::UnixMicros;
5
6#[derive(Clone, Copy, Debug, Eq, PartialEq)]
7pub enum SimOutcome {
8 Passed,
9 Failed,
10 TimedOut,
11}
12
13#[derive(Clone, Debug)]
14pub struct SimReport {
15 pub workload: &'static str,
16 pub seed: u64,
17 pub outcome: SimOutcome,
18 pub virtual_runtime: Duration,
19 pub virtual_clock_end: UnixMicros,
20 pub events_processed: u64,
21 pub last_cursor: u64,
22 pub edge_count: u64,
23 pub resolver_hits: u64,
24 pub resolver_misses: u64,
25 pub consumer_too_slow_count: u64,
26 pub disconnect_count: u64,
27 pub last_disconnect: Option<DisconnectSnapshot>,
28 pub warming_shadow: WarmingShadowSnapshot,
29 pub warming_buffer: WarmingBufferSnapshot,
30 pub failure_reason: Option<String>,
31}
32
33impl SimReport {
34 pub fn passed(self) -> bool {
35 matches!(self.outcome, SimOutcome::Passed)
36 }
37}