diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..e6b69f7 --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +if has nix; then + use flake . +fi diff --git a/.gitignore b/.gitignore index d787b70..ca1ab72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target /result +.direnv/* diff --git a/flake.nix b/flake.nix index 998d52b..f024f27 100644 --- a/flake.nix +++ b/flake.nix @@ -161,7 +161,9 @@ # MY_CUSTOM_DEVELOPMENT_VAR = "something else"; # Extra inputs can be added here; cargo and rustc are provided by default. - packages = [ + packages = with pkgs; [ + rustup + toolchain # pkgs.ripgrep ]; }; diff --git a/src/main.rs b/src/main.rs index 168661b..408e780 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,7 @@ -/// GPLv3 2024 KLM banana bread© +#![feature(test)] + +extern crate test; + use chrono::prelude::*; use std::{env, io}; use utils::print_time_delta; @@ -73,6 +76,7 @@ mod utils { #[cfg(test)] mod tests { use super::*; + use test::{black_box, Bencher}; const DATE: &str = "1998-01-20T16:00:00+01:00"; @@ -157,6 +161,15 @@ mod utils { ); } + #[bench] + fn bench_parse_timestamp_hms(b: &mut Bencher) { + b.iter(|| { + for i in 1..1000 { + black_box(parse_timestamp(&get_ctx(), &"23:59:59".to_string())); + } + }) + } + #[test] #[should_panic(expected = "Couldn't parse timestamp.")] fn parse_timestamp_hms_highh() {