Skip to main content

rbx_rsml/
macros.rs

1#[macro_export]
2macro_rules! collection {
3    ($($k:expr => $v:expr),* $(,)?) => {{
4        use std::iter::{Iterator, IntoIterator};
5        Iterator::collect(IntoIterator::into_iter([$(($k, $v),)*]))
6    }};
7
8    ($($v:expr),* $(,)?) => {{
9        use std::iter::{Iterator, IntoIterator};
10        Iterator::collect(IntoIterator::into_iter([$($v,)*]))
11    }};
12}
13
14#[macro_export]
15macro_rules! lazy_collection {
16    ($($k:expr => $v:expr),* $(,)?) => {{
17        use std::iter::{Iterator, IntoIterator};
18        LazyLock::new(|| Iterator::collect(IntoIterator::into_iter([$(($k, $v),)*])))
19    }};
20
21    ($($v:expr),* $(,)?) => {{
22        use std::iter::{Iterator, IntoIterator};
23        LazyLock::new(|| Iterator::collect(IntoIterator::into_iter([$($v,)*])))
24    }};
25}