Struct layout_2020::flow::float::FloatBandLink
source · pub struct FloatBandLink(pub Option<Arc<FloatBandNode>>);
Expand description
A single edge (or lack thereof) in the float band tree.
Tuple Fields§
§0: Option<Arc<FloatBandNode>>
Implementations§
source§impl FloatBandLink
impl FloatBandLink
sourcefn find(&self, block_position: Au) -> Option<FloatBand>
fn find(&self, block_position: Au) -> Option<FloatBand>
Returns the first band whose top is less than or equal to the given block_position
.
sourcefn find_next(&self, block_position: Au) -> Option<FloatBand>
fn find_next(&self, block_position: Au) -> Option<FloatBand>
Returns the first band whose top is strictly greater than the given block_position
.
sourcefn insert(&self, band: FloatBand) -> FloatBandLink
fn insert(&self, band: FloatBand) -> FloatBandLink
Inserts a new band into the tree. If the band has the same level as a pre-existing one, replaces the existing band with the new one.
sourcefn skew(&self) -> FloatBandLink
fn skew(&self) -> FloatBandLink
Corrects tree balance:
T L
/ \ / \
L R → A T if level(T) = level(L)
/ \ / \
A B B R
sourcefn split(&self) -> FloatBandLink
fn split(&self) -> FloatBandLink
Corrects tree balance:
T R
/ \ / \
A R → T X if level(T) = level(X)
/ \ / \
B X A B
Trait Implementations§
source§impl Clone for FloatBandLink
impl Clone for FloatBandLink
source§fn clone(&self) -> FloatBandLink
fn clone(&self) -> FloatBandLink
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for FloatBandLink
impl RefUnwindSafe for FloatBandLink
impl Send for FloatBandLink
impl Sync for FloatBandLink
impl Unpin for FloatBandLink
impl UnwindSafe for FloatBandLink
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
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moresource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert