Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- macro_rules! spread {
- (@inner $vec:ident) => { $vec };
- (@inner $vec:ident ...$item:expr) => {{
- $vec.extend($item.iter());
- $vec
- }};
- (@inner $vec:ident ...$item:expr, $($rest:tt)*) => {{
- $vec.extend($item.iter());
- spread![@inner $vec $($rest)*]
- }};
- (@inner $vec:ident $item:expr) => {{
- $vec.push($item);
- $vec
- }};
- (@inner $vec:ident $item:expr, $($rest:tt)*) => {{
- $vec.push($item);
- spread![@inner $vec $($rest)*]
- }};
- ($($rest:tt)*) => {{
- let mut items = Vec::new();
- spread![@inner items $($rest)*]
- }};
- }
- fn main() {
- let a = [1, 2, 3];
- let b = [6, 7, 8];
- let items = spread![0, ...a, 4, 5, ...b, 9];
- println!("{:?}", items);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement