Struct style::rule_cache::RuleCache
source · pub struct RuleCache {
map: FxHashMap<StrongRuleNode, SmallVec<[(CachedConditions, Arc<ComputedValues>); 1]>>,
}
Expand description
A TLS cache from rules matched to computed values.
Fields§
§map: FxHashMap<StrongRuleNode, SmallVec<[(CachedConditions, Arc<ComputedValues>); 1]>>
Implementations§
source§impl RuleCache
impl RuleCache
sourcefn get_rule_node_for_cache<'r>(
guards: &StylesheetGuards<'_>,
rule_node: Option<&'r StrongRuleNode>
) -> Option<&'r StrongRuleNode>
fn get_rule_node_for_cache<'r>( guards: &StylesheetGuards<'_>, rule_node: Option<&'r StrongRuleNode> ) -> Option<&'r StrongRuleNode>
Walk the rule tree and return a rule node for using as the key for rule cache.
It currently skips a rule node when it is neither from a style rule, nor containing any declaration of reset property. We don’t skip style rule so that we don’t need to walk a long way in the worst case. Skipping declarations rule nodes should be enough to address common cases that rule cache would fail to share when using the rule node directly, like preshint, style attrs, and animations.
sourcepub fn find(
&self,
guards: &StylesheetGuards<'_>,
builder_with_early_props: &StyleBuilder<'_>
) -> Option<&ComputedValues>
pub fn find( &self, guards: &StylesheetGuards<'_>, builder_with_early_props: &StyleBuilder<'_> ) -> Option<&ComputedValues>
Finds a node in the properties matched cache.
This needs to receive a StyleBuilder
with the early
properties
already applied.
sourcepub fn insert_if_possible(
&mut self,
guards: &StylesheetGuards<'_>,
style: &Arc<ComputedValues>,
pseudo: Option<&PseudoElement>,
conditions: &RuleCacheConditions
) -> bool
pub fn insert_if_possible( &mut self, guards: &StylesheetGuards<'_>, style: &Arc<ComputedValues>, pseudo: Option<&PseudoElement>, conditions: &RuleCacheConditions ) -> bool
Inserts a node into the rules cache if possible.
Returns whether the style was inserted into the cache.
Auto Trait Implementations§
impl !RefUnwindSafe for RuleCache
impl Send for RuleCache
impl Sync for RuleCache
impl Unpin for RuleCache
impl !UnwindSafe for RuleCache
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> 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>where
F: FnOnce(&Self) -> bool,
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 moresource§impl<T> MaybeBoxed<Box<T, Global>> for T
impl<T> MaybeBoxed<Box<T, Global>> for T
source§fn maybe_boxed(self) -> Box<T, Global>
fn maybe_boxed(self) -> Box<T, Global>
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