const_tools/
zip.rs

1#[doc(hidden)]
2#[macro_export]
3macro_rules! __zip__expand {
4    ([$(($iae:expr, $ia:ident))*]) => {{
5        let mut oa = $crate::__maybe_uninit_array_uninit();
6        $(
7            let $ia = ::core::mem::ManuallyDrop::new($iae);
8            let $ia = $crate::__manually_drop_inner_ref(&$ia);
9        )*
10        let len = $crate::__same_len!(&oa $(,$ia)*);
11        let mut index = 0;
12        while index < len {
13            oa[index].write(($(unsafe { ::core::ptr::read(&$ia[index]) }),*));
14            index += 1;
15        }
16        unsafe { $crate::__maybe_uninit_array_assume_init(oa) }
17    }};
18}
19
20#[macro_export]
21macro_rules! zip {
22    ($($iae:expr),* $(,)?) => {
23        $crate::__zip_left!(
24            [$(($iae, ))*]
25            [(ia0) (ia1) (ia2) (ia3) (ia4) (ia5) (ia6) (ia7) (ia8) (ia9) (ia10) (ia11)]
26            "unsupported number of inputs"
27            $crate::__zip__expand!
28        )
29    };
30}