pub struct RuleSet { /* private fields */ }Expand description
Indexed collection of resolved CSS declarations partitioned by selector subject.
Instead of matching every declaration against every DOM element
O(N_DOM * M_CSS), declarations are grouped by selector and
indexed by their subject selector (rightmost part):
- ID selector (
#id) - Class selectors (
.class) - Tag name selector (
div,p, etc.) - Attribute selectors (
[hidden]) - Universal / pseudo-class-only selectors
Declarations produced by one rule block share an identical selector, so grouped matching evaluates each selector at most once per element instead of once per declaration.
Implementations§
Source§impl RuleSet
impl RuleSet
Sourcepub fn from_declarations(
declarations: &[ResolvedDeclaration],
media_env: &MediaEnvironment,
) -> Self
pub fn from_declarations( declarations: &[ResolvedDeclaration], media_env: &MediaEnvironment, ) -> Self
Builds a RuleSet holding a copy of a list of ResolvedDeclarations, pre-filtering by MediaEnvironment.
Sourcepub fn query_candidates(
&self,
element: &ElementInfo,
) -> impl Iterator<Item = &SelectorGroup>
pub fn query_candidates( &self, element: &ElementInfo, ) -> impl Iterator<Item = &SelectorGroup>
Returns an iterator over selector candidates that might match the given element, each unique selector at most once per element.
pub fn declarations(&self) -> &[ResolvedDeclaration]
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RuleSet
impl RefUnwindSafe for RuleSet
impl Send for RuleSet
impl Sync for RuleSet
impl Unpin for RuleSet
impl UnsafeUnpin for RuleSet
impl UnwindSafe for RuleSet
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().