Skip to main content

CoveringNode

Struct CoveringNode 

Source
pub struct CoveringNode<'a> { /* private fields */ }
Expand description

The node with a minimal range that fully contains the search range.

Implementations§

Source§

impl<'a> CoveringNode<'a>

Source

pub fn from_ancestors(ancestors: Vec<AnyNodeRef<'a>>) -> CoveringNode<'a>

Creates a new CoveringNode from a list of ancestor nodes. The ancestors should be ordered from root to the covering node.

Source

pub fn node(&self) -> AnyNodeRef<'a>

Returns the covering node found.

Source

pub fn parent(&self) -> Option<AnyNodeRef<'a>>

Returns the node’s parent.

Source

pub fn find_first( self, f: impl Fn(AnyNodeRef<'a>) -> bool, ) -> Result<CoveringNode<'a>, CoveringNode<'a>>

Finds the first node that fully covers the range and fulfills the given predicate.

The “first” here means that the node closest to a leaf is returned.

Source

pub fn find_last( self, f: impl Fn(AnyNodeRef<'a>) -> bool, ) -> Result<CoveringNode<'a>, CoveringNode<'a>>

Finds the last node that fully covers the range and fulfills the given predicate.

The “last” here means that after finding the “first” such node, the highest ancestor found satisfying the given predicate is returned. Note that this is not the same as finding the node closest to the root that satisfies the given predictate.

Source

pub fn ancestors(&self) -> impl DoubleEndedIterator

Returns an iterator over the ancestor nodes, starting with the node itself and walking towards the root.

Trait Implementations§

Source§

impl Debug for CoveringNode<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for CoveringNode<'a>

§

impl<'a> RefUnwindSafe for CoveringNode<'a>

§

impl<'a> Send for CoveringNode<'a>

§

impl<'a> Sync for CoveringNode<'a>

§

impl<'a> Unpin for CoveringNode<'a>

§

impl<'a> UnsafeUnpin for CoveringNode<'a>

§

impl<'a> UnwindSafe for CoveringNode<'a>

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, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
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.
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U

Source§

impl<T> PyThreadingConstraint for T