use faststr::FastStr;
pub type JsonPointer = Vec<PointerNode>;
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum PointerNode {
Key(FastStr),
Index(usize),
}
#[macro_export]
macro_rules! pointer {
() => (
std::vec::Vec::<$crate::PointerNode>::new()
);
($($x:expr),+ $(,)?) => (
<[_]>::into_vec(
std::boxed::Box::new([$($crate::PointerNode::from($x)),+])
)
);
}
#[cfg(test)]
mod test {
#[test]
fn test_json_pointer() {
let pointers = pointer![];
println!("{:?}", pointers);
let mut pointers = pointer![1, 2, 3, "foo", "bar"];
pointers.push(123.into());
println!("{:?}", pointers);
}
}