master > master: code-rust - util min durch macro ersetzt

This commit is contained in:
RD 2022-04-14 11:54:49 +02:00
parent 37f05d1ff0
commit 07b214bc24
2 changed files with 21 additions and 9 deletions

View File

@ -25,11 +25,22 @@ pub fn construct_regex(pattern: &str) -> Regex {
// METHODS values
// ----------------------------------------------------------------
pub fn min<T>(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

View File

@ -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);
}
// ----------------------------------------------------------------