diff --git a/src/main.rs b/src/main.rs index 4806b37..357baa9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,9 @@ struct Flags { #[arg(short = 'v', long = "verbose")] verbose: bool, + + #[arg(short = 'p', long = "precision")] + precision: Option, } fn main() { @@ -36,7 +39,7 @@ fn main() { clock(&flags.f, &flags.clock).unwrap(); add(&flags.f, &flags.add, &flags.tag).unwrap(); - log(&flags.f, &flags.log, &flags.since, &flags.verbose).unwrap(); + log(&flags.f, &flags.log, &flags.since, &flags.verbose, &flags.precision.unwrap_or(0)).unwrap(); } fn clock(f: &String, clock: &bool) -> Result<(), String> { @@ -73,7 +76,7 @@ struct LogX { x: String, } -fn log(f: &String, enabled: &bool, since: &Option, verbose: &bool) -> Result<(), String> { +fn log(f: &String, enabled: &bool, since: &Option, verbose: &bool, precision: &u32) -> Result<(), String> { if !enabled { return Ok(()); } @@ -140,7 +143,11 @@ fn log(f: &String, enabled: &bool, since: &Option, verbose: &bool) -> Re for log in result { for x in log.xs { if x.x.len() > 0 { - println!("{} ({:.0}) {} ({:.1})", log.t, log.d, x.x, x.d); + match precision { + 0 => println!("{} ({:.0}) {} ({:.1})", log.t, log.d, x.x, x.d), + 1 => println!("{} ({:.1}) {} ({:.2})", log.t, log.d, x.x, x.d), + _ => println!("{} ({:.2}) {} ({:.3})", log.t, log.d, x.x, x.d), + } } } }