pub struct SiblingCache<'tree>(/* private fields */);Expand description
The children of each wide node on a walk’s chain, recorded as the
walk pushes them, so that Ancestors::siblings_after and
Ancestors::siblings_before find a sibling in a flat ERROR
without a scan from its start (#1584).
One slot per depth, keyed by the node’s id. A walk descends into a node only after pushing its children, so every wide node on the chain has its slot; a slot left behind by a node the walk has moved past holds another id and is not read. Recording copies what the walk already holds, once per wide node.
Implementations§
Source§impl<'tree> SiblingCache<'tree>
impl<'tree> SiblingCache<'tree>
Trait Implementations§
Source§impl<'tree> Debug for SiblingCache<'tree>
impl<'tree> Debug for SiblingCache<'tree>
Auto Trait Implementations§
impl<'tree> Freeze for SiblingCache<'tree>
impl<'tree> RefUnwindSafe for SiblingCache<'tree>
impl<'tree> Send for SiblingCache<'tree>
impl<'tree> Sync for SiblingCache<'tree>
impl<'tree> Unpin for SiblingCache<'tree>
impl<'tree> UnsafeUnpin for SiblingCache<'tree>
impl<'tree> UnwindSafe for SiblingCache<'tree>
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