Macro ciborium::cbor[][src]

macro_rules! cbor {
    (@ map { $($key : expr => $val : expr), * } $(,) ?) => { ... };
    (@ map { $($key : expr => $val : expr), * } { $($nkey : tt) * } =>
 $($next : tt) *) => { ... };
    (@ map { $($key : expr => $val : expr), * } [$($nkey : tt) *] => $($next : tt)
 *) => { ... };
    (@ map { $($key : expr => $val : expr), * } $nkey : expr =>
 { $($nval : tt) * }, $($next : tt) *) => { ... };
    (@ map { $($key : expr => $val : expr), * } $nkey : expr => [$($nval : tt) *],
 $($next : tt) *) => { ... };
    (@ map { $($key : expr => $val : expr), * } $nkey : expr => $nval : expr,
 $($next : tt) *) => { ... };
    (@ seq [$($val : expr), *] $(,) ?) => { ... };
    (@ seq [$($val : expr), *] { $($item : tt) * }, $($next : tt) *) => { ... };
    (@ seq [$($val : expr), *] [$($item : tt) *], $($next : tt) *) => { ... };
    (@ seq [$($val : expr), *] $item : expr, $($next : tt) *) => { ... };
    ({ $($next : tt) * }) => { ... };
    ([$($next : tt) *]) => { ... };
    ($val : expr) => { ... };
}
Expand description

Build a Value conveniently.

The syntax should be intuitive if you are familiar with JSON. You can also inline simple Rust expressions, including custom values that implement serde::Serialize. Note that this macro returns Result<Value, Error>, so you should handle the error appropriately.

use ciborium::cbor;

let value = cbor!({
    "code" => 415,
    "message" => null,
    "continue" => false,
    "extra" => { "numbers" => [8.2341e+4, 0.251425] },
}).unwrap();