#[doc(hidden)]
#[macro_export]
macro_rules! __rust_force_expr {
($e:expr) => {
$e
};
}
#[macro_export]
macro_rules! path {
() => (
$crate::__rust_force_expr!($crate::path::Path::new())
);
($elem:expr; $n:expr) => (
$crate::__rust_force_expr!($crate::path::Path::from(std::vec::from_elem($elem, $n)))
);
($($x:expr),+ $(,)?) => (
$crate::__rust_force_expr!($crate::path::Path::from(<[_]>::into_vec(
std::boxed::Box::new([$($x),+])
)))
);
}
#[cfg(test)]
mod tests {
use crate::{path, prelude::Path };
#[test]
fn path() {
let path: Path<(i32, bool)> = path![(7, false), (2, true), (8, true)];
assert_eq!(path, vec![(7, false), (2, true), (8, true)].into());
}
}