Struct style::sharing::RevalidationResult
source · pub struct RevalidationResult {
pub selectors_matched: SmallBitVec,
pub relevant_attributes: RelevantAttributes,
}
Expand description
The results from the revalidation step.
Rather than either:
-
Plainly rejecting sharing for elements with different attributes (which would be unfortunate because a lot of elements have different attributes yet those attributes are not style-relevant).
-
Having to give up on per-attribute bucketing, which would be unfortunate because it increases the cost of revalidation for pages with lots of global attribute selectors (see bug 1868316).
-
We also store the style-relevant attributes for these elements, in order to guarantee that we end up looking at the same selectors.
Fields§
§selectors_matched: SmallBitVec
A bit for each selector matched. This is sound because we guarantee we look up into the same buckets via the pre-revalidation checks and relevant_attributes.
relevant_attributes: RelevantAttributes
The set of attributes of this element that were relevant for its style.
Trait Implementations§
source§impl Debug for RevalidationResult
impl Debug for RevalidationResult
source§impl Default for RevalidationResult
impl Default for RevalidationResult
source§fn default() -> RevalidationResult
fn default() -> RevalidationResult
Auto Trait Implementations§
impl Freeze for RevalidationResult
impl RefUnwindSafe for RevalidationResult
impl Send for RevalidationResult
impl Sync for RevalidationResult
impl Unpin for RevalidationResult
impl UnwindSafe for RevalidationResult
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