From 3c1624814ee6ba71b50664bf4bd73cb220563e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christina=20S=C3=B8rensen?= Date: Tue, 14 May 2024 16:06:01 +0200 Subject: [PATCH] feat: cargo bench, nightly in devshell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christina Sørensen --- .envrc | 3 +++ .gitignore | 1 + flake.nix | 4 +++- src/main.rs | 15 ++++++++++++++- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .envrc 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() {