flow_value/
macros.rs

1#[macro_export]
2macro_rules! map {
3    (@single $($x:tt)*) => (());
4    (@count $($rest:expr_2021),*) => (<[()]>::len(&[$($crate::map!(@single $rest)),*]));
5
6    ($($key:expr_2021 => $value:expr_2021,)+) => { $crate::map!($($key => $value),+) };
7    ($($key:expr_2021 => $value:expr_2021),*) => {
8        {
9            let _cap = $crate::map!(@count $($key),*);
10            let mut _map = $crate::Map::with_capacity(_cap);
11            $(
12                let _ = _map.insert($crate::Key::from($key), $crate::Value::from($value));
13            )*
14            _map
15        }
16    };
17}
18
19#[macro_export]
20macro_rules! array {
21    (@single $($x:tt)*) => (());
22    (@count $($rest:expr_2021),*) => (<[()]>::len(&[$($crate::array!(@single $rest)),*]));
23
24    ($($value:expr_2021,)+) => { $crate::array!($($value),+) };
25    ($($value:expr_2021),*) => {
26        {
27            let _cap = $crate::array!(@count $($value),*);
28            let mut _vec = ::std::vec::Vec::<$crate::Value>::with_capacity(_cap);
29            $(
30                _vec.push($crate::Value::from($value));
31            )*
32            _vec
33        }
34    };
35}