macro_rules! node {
(@parent($parent:expr)) => { ... };
(@parent($parent:expr) @text($txt:expr)) => { ... };
(@parent($parent:expr) @text($txt:expr) $($other:tt)*) => { ... };
(@parent($parent:expr) $name:ident (
$($key:ident = $val:expr),*
) {
$($inner:tt)*
}) => { ... };
(@parent($parent:expr) $name:ident (
$($key:ident = $val:expr),*
) {
$($inner:tt)*
} $($other:tt)*) => { ... };
(@parent($parent:expr) $name:ident (
$($key:ident = $val:expr),*
)) => { ... };
(@parent($parent:expr) $name:ident (
$($key:ident = $val:expr),*
) $($other:tt)*) => { ... };
(@parent($parent:expr) $name:ident {
$($inner:tt)*
}) => { ... };
(@parent($parent:expr) $name:ident {
$($inner:tt)*
} $($other:tt)*) => { ... };
(@parent($parent:expr) $name:ident) => { ... };
(@parent($parent:expr) $name:ident $($other:tt)*) => { ... };
(@text($txt:expr)) => { ... };
($name:ident (
$($key:ident = $val:expr),*
) {
$($inner:tt)*
}) => { ... };
($name:ident (
$($key:ident = $val:expr),*
)) => { ... };
($name:ident {
$($inner:tt)*
}) => { ... };
($name:ident) => { ... };
}
Expand description
Used to create nodes inline without parsing a document at runtime.
The syntax matches the node description format apart from a few differences.
- Text can’t be inline, it must be wrapped with
@text("hello")
- String attributes currently need to be
.to_owned()
as it expectsString
not&str
.
Examples
node!{
panel(x=5, y=16, width=300, height=50) {
icon
title {
@text("Testing")
}
}
};
node!{
@text("Hello world")
};