vortex_buffer/
macros.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4/// A macro for constructing buffers akin to `vec![..]`.
5#[macro_export]
6macro_rules! buffer {
7    () => (
8        $crate::Buffer::empty()
9    );
10    ($start:tt .. $end:tt) => (
11        $crate::Buffer::from_iter($start..$end)
12    );
13    ($start:tt ..= $end:tt) => (
14        $crate::Buffer::from_iter($start..=$end)
15    );
16    ($elem:expr; $n:expr) => (
17        $crate::Buffer::full($elem, $n)
18    );
19    ($($x:expr),+ $(,)?) => (
20        $crate::Buffer::from_iter([$($x),+])
21    );
22}
23
24/// A macro for constructing buffers akin to `vec![..]`.
25#[macro_export]
26macro_rules! buffer_mut {
27    () => (
28        $crate::BufferMut:empty()
29    );
30    ($start:tt .. $end:tt) => (
31        $crate::BufferMut::from_iter($start..$end)
32    );
33    ($start:tt ..= $end:tt) => (
34        $crate::BufferMut::from_iter($start..=$end)
35    );
36    ($elem:expr; $n:expr) => (
37        $crate::BufferMut::full($elem, $n)
38    );
39    ($($x:expr),+ $(,)?) => (
40        $crate::BufferMut::from_iter([$($x),+])
41    );
42}