Struct style::invalidation::element::invalidator::Invalidation
source · pub struct Invalidation<'a> {
dependency: &'a Dependency,
scope: Option<OpaqueElement>,
offset: usize,
matched_by_any_previous: bool,
}
Expand description
An Invalidation
is a complex selector that describes which elements,
relative to a current element we are processing, must be restyled.
Fields§
§dependency: &'a Dependency
The dependency that generated this invalidation.
Note that the offset inside the dependency is not really useful after construction.
scope: Option<OpaqueElement>
The right shadow host from where the rule came from, if any.
This is needed to ensure that we match the selector with the right state, as whether some selectors like :host and ::part() match depends on it.
offset: usize
The offset of the selector pointing to a compound selector.
This order is a “parse order” offset, that is, zero is the leftmost part of the selector written as parsed / serialized.
It is initialized from the offset from dependency
.
matched_by_any_previous: bool
Whether the invalidation was already matched by any previous sibling or ancestor.
If this is the case, we can avoid pushing invalidations generated by this one if the generated invalidation is effective for all the siblings or descendants after us.
Implementations§
source§impl<'a> Invalidation<'a>
impl<'a> Invalidation<'a>
sourcepub fn new(dependency: &'a Dependency, scope: Option<OpaqueElement>) -> Self
pub fn new(dependency: &'a Dependency, scope: Option<OpaqueElement>) -> Self
Create a new invalidation for matching a dependency.
sourcefn effective_for_next(&self) -> bool
fn effective_for_next(&self) -> bool
Whether this invalidation is effective for the next sibling or descendant after us.
fn kind(&self) -> InvalidationKind
Trait Implementations§
source§impl<'a> Clone for Invalidation<'a>
impl<'a> Clone for Invalidation<'a>
source§fn clone(&self) -> Invalidation<'a>
fn clone(&self) -> Invalidation<'a>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl<'a> Freeze for Invalidation<'a>
impl<'a> RefUnwindSafe for Invalidation<'a>
impl<'a> Send for Invalidation<'a>
impl<'a> Sync for Invalidation<'a>
impl<'a> Unpin for Invalidation<'a>
impl<'a> UnwindSafe for Invalidation<'a>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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