macro_rules! node { (@[$v:expr; $n:expr]) => { ... }; (@[$($v:expr),* $(,)?]) => { ... }; (@{$($k:expr => $v:expr),* $(,)?}) => { ... }; (@*$anchor:expr) => { ... }; (@$yaml:expr) => { ... }; (arc $($tt:tt)+) => { ... }; (rc $($tt:tt)+) => { ... }; ($($tt:tt)+) => { ... }; }
Expand description
Create Node
items literally.
Literals and expressions will be transformed to Yaml
automatically by
calling Into::into
.
use yaml_peg::{node, NodeRc};
let k = "a";
assert_eq!(node!(k), node!("a"));
assert_eq!(node!(()), NodeRc::from(()));
Arrays and maps can be created from this macro directly through brackets
([]
, {}
).
use yaml_peg::{node, NodeRc};
let v = vec![NodeRc::from(1), NodeRc::from(2)];
assert_eq!(node!([1, 2]), v.into_iter().collect());
let m = vec![(NodeRc::from(1), NodeRc::from(2))];
assert_eq!(node!({1 => 2}), m.into_iter().collect());