use cmn::{
cmn_assert, cmn_constants, cmn_contains, cmn_in_range, cmn_join,
cmn_map, cmn_max, cmn_min, cmn_print, cmn_print_vec, cmn_split,
cmn_to_num, cmn_vec,
};
fn main() {
println!("=== no_std Macros ===\n");
let max = cmn_max!(3, 7, 2, 9, 1);
println!("cmn_max!(3,7,2,9,1) = {max}");
let min = cmn_min!(3, 7, 2, 9, 1);
println!("cmn_min!(3,7,2,9,1) = {min}");
println!("cmn_in_range!(5, 0, 10) = {}", cmn_in_range!(5, 0, 10));
println!("cmn_in_range!(15, 0, 10) = {}", cmn_in_range!(15, 0, 10));
println!(
"cmn_contains!(\"hello world\", \"world\") = {}",
cmn_contains!("hello world", "world")
);
let n: f64 = cmn_to_num!("42.5");
let bad: f64 = cmn_to_num!("not_a_number");
println!("cmn_to_num!(\"42.5\") = {n}");
println!("cmn_to_num!(\"bad\") = {bad}");
cmn_assert!(1 + 1 == 2);
println!("cmn_assert!(1+1==2) = passed");
cmn_constants! {
MY_PI = core::f64::consts::PI,
MY_E = core::f64::consts::E
}
println!("cmn_constants! MY_PI = {MY_PI}");
println!("cmn_constants! MY_E = {MY_E}");
println!("\n=== std Macros ===\n");
let v = cmn_vec!(10, 20, 30);
println!("cmn_vec!(10,20,30) = {v:?}");
let m = cmn_map!("a" => 1, "b" => 2, "c" => 3);
println!("cmn_map! = {m:?}");
let joined = cmn_join!("Hello", " ", "World");
println!("cmn_join! = {joined}");
let parts = cmn_split!("one two three");
println!("cmn_split! = {parts:?}");
cmn_print!("cmn_print! output");
print!("cmn_print_vec!: ");
cmn_print_vec!(&[1, 2, 3]);
}