From 07b214bc24950239b597fd0d4ee4d96bee80a1db Mon Sep 17 00:00:00 2001 From: raj_mathe Date: Thu, 14 Apr 2022 11:54:49 +0200 Subject: [PATCH] master > master: code-rust - util min durch macro ersetzt --- code/rust/src/core/utils.rs | 19 +++++++++++++++---- code/rust/tests/test_core/test_utils.rs | 11 ++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/code/rust/src/core/utils.rs b/code/rust/src/core/utils.rs index 8f90228..5907c6d 100644 --- a/code/rust/src/core/utils.rs +++ b/code/rust/src/core/utils.rs @@ -25,11 +25,22 @@ pub fn construct_regex(pattern: &str) -> Regex { // METHODS values // ---------------------------------------------------------------- -pub fn min(x: T, y: T) -> T - where T: PartialOrd -{ - return if y < x { y } else { x }; +#[macro_export] +macro_rules! value_min{ + ($value:expr $(,)?)=>{ $value }; + ($value:expr $(, $values:expr)+ $(,)?)=>{ + { + let x = $crate::value_min!($( $values )+); + if $value < x { + $value + } else { + x + } + } + }; } +#[allow(unused_imports)] +pub(crate) use value_min; // ---------------------------------------------------------------- // METHODS Vectors diff --git a/code/rust/tests/test_core/test_utils.rs b/code/rust/tests/test_core/test_utils.rs index 97c089b..496ba71 100644 --- a/code/rust/tests/test_core/test_utils.rs +++ b/code/rust/tests/test_core/test_utils.rs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------- use ads2::core::utils; +use ads2::value_min; // ---------------------------------------------------------------- // Test regex @@ -21,11 +22,11 @@ fn test_regex() { #[test] fn test_min() { - assert_eq!(utils::min("beth", "alef"), "alef"); - assert_eq!(utils::min("alef", "beth"), "alef"); - assert_eq!(utils::min("alef", "ale"), "ale"); - assert_eq!(utils::min(320, 24), 24); - assert_eq!(utils::min(0.03, 0.2), 0.03); + assert_eq!(value_min!("beth", "alef"), "alef"); + assert_eq!(value_min!("alef", "beth"), "alef"); + assert_eq!(value_min!("alef", "ale"), "ale"); + assert_eq!(value_min!(320, 24), 24); + assert_eq!(value_min!(0.03, 0.2), 0.03); } // ----------------------------------------------------------------