BranchNode

Struct BranchNode 

Source
pub struct BranchNode;
Expand description

Helper functions for branch nodes.

Implementations§

Source§

impl BranchNode

Source

pub fn set_partners(node: &NodeRef, partners: Option<Rc<RefCell<MatchedNodes>>>)

Sets the partners for a branch node.

§Panics

Panics if the node is not a branch node.

Source

pub fn partners(node: &NodeRef) -> Option<Rc<RefCell<MatchedNodes>>>

Returns the partners for a branch node.

§Panics

Panics if the node is not a branch node.

Source

pub fn set_base_match( node: &NodeRef, base: Weak<RefCell<NodeInner>>, match_type: MatchType, ) -> Result<()>

Sets the base match and match type for a branch node.

§Arguments
  • node - The branch node
  • base - Weak reference to the base node
  • match_type - The match type (must be CONTENT, CHILDREN, or FULL)
§Returns

Error if match_type is invalid.

§Panics

Panics if the node is not a branch node.

Source

pub fn set_match_type(node: &NodeRef, match_type: MatchType) -> Result<()>

Sets only the match type for a branch node.

§Arguments
  • node - The branch node
  • match_type - The match type (must be CONTENT, CHILDREN, or FULL)
§Returns

Error if match_type is invalid.

§Panics

Panics if the node is not a branch node.

Source

pub fn del_base_match(node: &NodeRef)

Clears the base match for a branch node.

§Panics

Panics if the node is not a branch node.

Source

pub fn base_match_type(node: &NodeRef) -> MatchType

Returns the match type for a branch node.

§Panics

Panics if the node is not a branch node.

Source

pub fn has_base_match(node: &NodeRef) -> bool

Returns true if this branch node has a base match.

§Panics

Panics if the node is not a branch node.

Source

pub fn base_match(node: &NodeRef) -> Option<NodeRef>

Returns the base match for a branch node.

§Panics

Panics if the node is not a branch node.

Source

pub fn is_left_tree(node: &NodeRef) -> bool

Returns true if this node is in the left tree.

This is determined by checking if this node (or an ancestor) is in the left matches of its base match.

§Panics

Panics if the node is not a branch node, or if no matched ancestor is found.

Source

pub fn set_is_left_tree(node: &NodeRef, is_left: bool)

Sets the cached is_left_tree value.

§Panics

Panics if the node is not a branch node.

Source

pub fn is_match(node: &NodeRef, type_flags: MatchType) -> bool

Returns true if this node’s match type includes the given flags.

§Panics

Panics if the node is not a branch node.

Source

pub fn first_partner(node: &NodeRef, type_flags: MatchType) -> Option<NodeRef>

Finds the first partner node that matches the given type flags.

For a node to be returned:

  1. This node’s match type must include the given flags
  2. The partner’s match type must include the given flags
§Panics

Panics if the node is not a branch node.

Source

pub fn child(node: &NodeRef, index: usize) -> NodeRef

Gets the child at the given index, asserting it’s a branch node.

§Panics

Panics if the index is out of bounds or if the child is not a branch node.

Source

pub fn parent(node: &NodeRef) -> Option<NodeRef>

Gets the parent, asserting it’s a branch node.

Returns None if there is no parent.

§Panics

Panics if the parent exists but is not a branch node.

Source

pub fn is_branch(node: &NodeRef) -> bool

Checks if the given node is a branch node.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.