pub struct PointerTree { /* private fields */ }
Expand description
PointerTree is designed for get_many
and
get_many_unchecked
.
It is recommended to use get_many
when you need to get multiple values from json. Instead of
using get
multiple times.
§Examples
let json = r#"
{"u": 123, "a": {"b" : {"c": [null, "found"]}}}"#;
// build a pointer tree, representing multiple json path
let mut tree = PointerTree::new();
tree.add_path(&["u"]);
tree.add_path(&pointer!["a", "b", "c", 1]);
let nodes = unsafe { sonic_rs::get_many_unchecked(json, &tree) };
// the node order is as the order of `add_path`
for val in nodes.unwrap() {
println!("{}", val.as_raw_str());
// 123
// "found"
}
Implementations§
Source§impl PointerTree
impl PointerTree
Sourcepub fn new() -> Self
pub fn new() -> Self
Creat a empty tree. If get_many
from empty tree, it will return the whole json.
Sourcepub fn add_path<Path: IntoIterator>(&mut self, path: Path)
pub fn add_path<Path: IntoIterator>(&mut self, path: Path)
we build tree and return value according by the order of path. Allow the repeated path.
Trait Implementations§
Source§impl Debug for PointerTree
impl Debug for PointerTree
Source§impl Default for PointerTree
impl Default for PointerTree
Source§fn default() -> PointerTree
fn default() -> PointerTree
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PointerTree
impl RefUnwindSafe for PointerTree
impl Send for PointerTree
impl Sync for PointerTree
impl Unpin for PointerTree
impl UnwindSafe for PointerTree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more