Struct zenoh_keyexpr::keyexpr_tree::arc_tree::KeArcTreeNode
source · pub struct KeArcTreeNode<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> { /* private fields */ }Implementations§
source§impl<Weight, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>
impl<Weight, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>
sourcepub fn is_zombie(&self) -> bool
pub fn is_zombie(&self) -> bool
Under specific circumstances, a node that’s been cloned from a tree might have a destroyed parent.
Such a node is “zombified”, and becomes unable to perform certain operations such as navigating its parents,
which may be necessary for operations such as IKeyExprTreeNode::keyexpr.
To become zombified, a node and its parents must both have been pruned from the tree that constructed them, while at least one of the parents has also been dropped everywhere it was aliased through Arc.
Trait Implementations§
source§impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> HasChunk for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> HasChunk for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
source§impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> IKeyExprTreeNode<Weight> for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> IKeyExprTreeNode<Weight> for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
source§impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> IKeyExprTreeNodeMut<Weight> for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
impl<Weight, Parent: IArcProvider, Wildness: IWildness, Children: IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>, Token: TokenTrait> IKeyExprTreeNodeMut<Weight> for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>
fn parent_mut(&mut self) -> Option<&mut Self::Parent>
fn weight_mut(&mut self) -> Option<&mut Weight>
fn take_weight(&mut self) -> Option<Weight>
fn insert_weight(&mut self, weight: Weight) -> Option<Weight>
fn children_mut(&mut self) -> &mut Self::Children
Auto Trait Implementations§
impl<Weight, Parent, Wildness, Children, Token> RefUnwindSafe for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>where
Weight: RefUnwindSafe,
<Children as IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>>::Assoc: RefUnwindSafe,
<Parent as IArcProvider>::Ptr<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>: RefUnwindSafe,
impl<Weight, Parent, Wildness, Children, Token> Send for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>where
Weight: Send,
<Children as IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>>::Assoc: Send,
<Parent as IArcProvider>::Ptr<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>: Send,
impl<Weight, Parent, Wildness, Children, Token> Sync for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>where
Weight: Sync,
<Children as IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>>::Assoc: Sync,
<Parent as IArcProvider>::Ptr<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>: Sync,
impl<Weight, Parent, Wildness, Children, Token> Unpin for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>where
Weight: Unpin,
<Children as IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>>::Assoc: Unpin,
<Parent as IArcProvider>::Ptr<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>: Unpin,
impl<Weight, Parent, Wildness, Children, Token> UnwindSafe for KeArcTreeNode<Weight, Parent, Wildness, Children, Token>where
Weight: UnwindSafe,
<Children as IChildrenProvider<Arc<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>>>::Assoc: UnwindSafe,
<Parent as IArcProvider>::Ptr<TokenCell<KeArcTreeNode<Weight, Weak<()>, Wildness, Children, Token>, Token>>: UnwindSafe,
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