Now let's take a silly one
1#[tokio::main(flavor = "multi_thread", worker_threads = 4)]
2async fn main() {
3 let args: Vec<String> = std::env::args().skip(1).collect();
4 let dump = args.iter().any(|arg| arg == "dump");
5 let numbers: Vec<u64> = args.iter().filter_map(|arg| arg.parse().ok()).collect();
6 let seed = numbers.first().copied().unwrap_or(1);
7 let rounds = numbers.get(1).copied().unwrap_or(12) as u32;
8 let trace = knot_sim::run(seed, rounds).await;
9 if dump {
10 println!(
11 "{}",
12 serde_json::to_string_pretty(&trace).expect("trace serializes")
13 );
14 }
15 println!(
16 "knot-sim seed={seed} rounds={rounds} steps={} snapshots={} digest={:016x}",
17 trace.steps.len(),
18 trace.snapshots.len(),
19 trace.digest()
20 );
21}