Macro yaml_peg::node[][src]

macro_rules! node {
    ([$($token:tt)*] $($opt:tt)*) => { ... };
    ({$($token:tt)*} $($opt:tt)*) => { ... };
    (null $($opt:tt)*) => { ... };
    (*($anchor:expr) $($opt:tt)*) => { ... };
    ($yaml:expr $(, $pos:expr $(, $anchor:expr $(, $ty:expr)?)?)?) => { ... };
}
Expand description

Create Node items literally.

Literals and expressions will be transformed to Yaml automatically by calling Into::into.

use yaml_peg::node;
let k = "a";
assert_eq!(node!(k), node!("a"));

The members are ordered as node!(yaml, pos, anchor, ty).

Arrays and maps can be created from this macro directly through brackets ([], {}).

use yaml_peg::{node, yaml_array, yaml_map};
assert_eq!(node!([node!(1), node!(2)]), node!(yaml_array![node!(1), node!(2)]));
assert_eq!(node!({node!(1) => node!(2)}), node!(yaml_map![node!(1) => node!(2)]));

The Yaml::Null and the Yaml::Null are also supported by the syntax:

use yaml_peg::{node, Yaml};
assert_eq!(node!(Yaml::Null), node!(null));
assert_eq!(node!(Yaml::Anchor("x".into())), node!(*("x")));