From 183293fe7eecadab18c611c50f61d2f695b464f9 Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Wed, 8 Mar 2023 16:49:33 +0000 Subject: [PATCH] Some verbose logging if wanted (I'm running 50000 and dear god I'm bored) --- src/cli/cli.rs | 3 +++ src/cli/mod.rs | 12 +++++++++++- src/main.rs | 11 ++++++----- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/cli/cli.rs b/src/cli/cli.rs index 65f2b75..4be7745 100644 --- a/src/cli/cli.rs +++ b/src/cli/cli.rs @@ -53,4 +53,7 @@ pub struct ModelCli { #[arg(value_enum, short, long)] pub output: PathBuf, + + #[arg(short, long)] + pub notify_every: Option, } diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 9955276..035d765 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -8,10 +8,20 @@ use crate::system::walker::Walker; pub mod cli; pub mod output; -pub fn drive_system, W: Walker

, Sp: Spawner

, St: Sticker>(sys: &mut DLASystem, max_frames: Option) { +pub fn drive_system, W: Walker

, Sp: Spawner

, St: Sticker>( + sys: &mut DLASystem, + max_frames: Option, + notify_every: Option, +) { + let mut previous_n: usize = 0; while sys.running { sys.update(); + if let Some(notify_every) = notify_every && (sys.history.len() % notify_every) == 0 && previous_n != sys.history.len() { + println!("On frame {}, deposited {} particles", sys.frame, sys.history.len()); + previous_n = sys.history.len(); + } + match max_frames { Some(max_frames) if max_frames <= sys.frame => { sys.running = false; diff --git a/src/main.rs b/src/main.rs index 9eff2a7..dfb27ea 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ #![feature(array_zip)] #![feature(generic_const_exprs)] +#![feature(let_chains)] use clap::Parser; use rand::prelude::*; @@ -35,7 +36,7 @@ fn main() { cli.max_particles, ); - drive_system(&mut sys, cli.max_frames); + drive_system(&mut sys, cli.max_frames, cli.notify_every); write(&sys, cli.format, &cli.output); } @@ -49,7 +50,7 @@ fn main() { cli.max_particles, ); - drive_system(&mut sys, cli.max_frames); + drive_system(&mut sys, cli.max_frames, cli.notify_every); write(&sys, cli.format, &cli.output); } @@ -63,7 +64,7 @@ fn main() { cli.max_particles, ); - drive_system(&mut sys, cli.max_frames); + drive_system(&mut sys, cli.max_frames, cli.notify_every); write(&sys, cli.format, &cli.output); } @@ -77,7 +78,7 @@ fn main() { cli.max_particles, ); - drive_system(&mut sys, cli.max_frames); + drive_system(&mut sys, cli.max_frames, cli.notify_every); write(&sys, cli.format, &cli.output); } @@ -91,7 +92,7 @@ fn main() { cli.max_particles, ); - drive_system(&mut sys, cli.max_frames); + drive_system(&mut sys, cli.max_frames, cli.notify_every); write(&sys, cli.format, &cli.output); } }