Macro fungui::query

source ·
macro_rules! query {
    (@target($query:expr), ) => { ... };
    (@target($query:expr), @text (
        $($key:ident = $val:expr),*
    ) > $($other:tt)*) => { ... };
    (@target($query:expr), @text > $($other:tt)*) => { ... };
    (@target($query:expr), @text (
        $($key:ident = $val:expr),*
    )) => { ... };
    (@target($query:expr), @text) => { ... };
    (@target($query:expr), $name:ident (
        $($key:ident = $val:expr),*
    ) > $($other:tt)*) => { ... };
    (@target($query:expr), $name:ident > $($other:tt)*) => { ... };
    (@target($query:expr), $name:ident (
        $($key:ident = $val:expr),*
    )) => { ... };
    (@target($query:expr), $name:ident) => { ... };
    ($node:expr, $($other:tt)*) => { ... };
}
Expand description

Allows for the creation of queries in a similar format as style rules.

Examples

let res = query!(node, panel(width=300) > title > @text)
        .next();
assert_eq!(
    &*res
        .as_ref()
        .and_then(|v| v.text())
        .unwrap(),
    "Testing"
);