Skip to main content

xml_sec/sxd_xpath/
macros.rs

1/// Convenience constructor for a nodeset.
2///
3/// ```
4/// # #[cfg(not(feature = "embedded"))]
5/// # {
6/// use sxd_document_no_unsafe::Package;
7///
8/// let package = Package::new();
9/// let root = package.as_document().root();
10/// let nodes = sxd_xpath_no_unsafe::nodeset![root,];
11/// assert_eq!(nodes.size(), 1);
12/// # }
13/// ```
14#[macro_export]
15macro_rules! nodeset(
16    ($($e:expr),*) => ({
17        // leading _ to allow empty construction without a warning.
18        let mut _temp = $crate::nodeset::Nodeset::new();
19        $(_temp.add($e);)*
20        _temp
21    });
22    ($($e:expr),+,) => ($crate::nodeset!($($e),+))
23);
24
25/// Convenience constructor for an OrderedNodes
26#[cfg(test)]
27macro_rules! ordered_nodes {
28    ( $($val:expr,)* ) => {
29        $crate::nodeset::OrderedNodes::from(vec![
30            $( $crate::nodeset::Node::from($val), )*
31        ])
32    };
33    ( $($val:expr),* ) => {
34        ordered_nodes![$($val, )*]
35    };
36}