Struct style::invalidation::element::invalidator::SiblingTraversalMap
source · pub struct SiblingTraversalMap<E>where
E: TElement,{
info: Option<SiblingInfo<E>>,
}
Expand description
Traversal mapping for elements under consideration. It acts like a snapshot map, though this only “maps” one element at most. For general invalidations, this has no effect, especially since when DOM mutates, the mutation’s effect should not escape the subtree being mutated. This is not the case for relative selectors, unfortunately, so we may end up traversing a portion of the DOM tree that mutated. In case the mutation is removal, its sibling relation is severed by the time the invalidation happens. This structure recovers that relation. Note - it assumes that there is only one element under this effect.
Fields§
§info: Option<SiblingInfo<E>>
Implementations§
source§impl<E> SiblingTraversalMap<E>where
E: TElement,
impl<E> SiblingTraversalMap<E>where
E: TElement,
sourcepub fn new(
affected: E,
prev_sibling: Option<E>,
next_sibling: Option<E>,
) -> Self
pub fn new( affected: E, prev_sibling: Option<E>, next_sibling: Option<E>, ) -> Self
Create a new traversal map with the affected element.
sourcepub fn next_sibling_for(&self, element: &E) -> Option<E>
pub fn next_sibling_for(&self, element: &E) -> Option<E>
Get the element’s previous sibling element.
sourcepub fn prev_sibling_for(&self, element: &E) -> Option<E>
pub fn prev_sibling_for(&self, element: &E) -> Option<E>
Get the element’s previous sibling element.
Trait Implementations§
Auto Trait Implementations§
impl<E> Freeze for SiblingTraversalMap<E>where
E: Freeze,
impl<E> RefUnwindSafe for SiblingTraversalMap<E>where
E: RefUnwindSafe,
impl<E> Send for SiblingTraversalMap<E>where
E: Send,
impl<E> Sync for SiblingTraversalMap<E>where
E: Sync,
impl<E> Unpin for SiblingTraversalMap<E>where
E: Unpin,
impl<E> UnwindSafe for SiblingTraversalMap<E>where
E: 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
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>
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>
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