1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
macro_rules! cbor_buffer {
    ($($tokens:tt)*) => {{
        use ciborium::{ cbor, ser::into_writer };

        let mut output: Vec<u8> = vec![];
        let value = cbor!($($tokens)*).expect("Failed to create cbor");
        into_writer(&value, &mut output).expect("Failed to serialize cbor");
        output
    }};
}

#[macro_export]
macro_rules! collection {
    // map-like
    ($($k:expr => $v:expr),* $(,)?) => {{
        core::convert::From::from([$(($k.into(), $v.into()),)*])
    }};
    // set-like
    ($($v:expr),* $(,)?) => {{
        core::convert::From::from([$($v,)*])
    }};
}

pub(crate) use cbor_buffer;
pub(crate) use collection;