Struct style::computed_value_flags::ComputedValueFlags
source · #[repr(C)]pub struct ComputedValueFlags(u32);
Expand description
Misc information about a given computed style.
All flags are currently inherited for text, pseudo elements, and anonymous boxes, see StyleBuilder::for_inheritance and its callsites. If we ever want to add some flags that shouldn’t inherit for them, we might want to add a function to handle this.
Tuple Fields§
§0: u32
Implementations§
source§impl ComputedValueFlags
impl ComputedValueFlags
sourcepub const HAS_TEXT_DECORATION_LINES: Self = _
pub const HAS_TEXT_DECORATION_LINES: Self = _
Whether the style or any of the ancestors has a text-decoration-line property that should get propagated to descendants.
text-decoration-line is a reset property, but gets propagated in the frame/box tree.
sourcepub const SHOULD_SUPPRESS_LINEBREAK: Self = _
pub const SHOULD_SUPPRESS_LINEBREAK: Self = _
Whether line break inside should be suppressed.
If this flag is set, the line should not be broken inside,
which means inlines act as if nowrap is set,
element is
suppressed, and blocks are inlinized.
This bit is propagated to all children of line participants. It is currently used by ruby to make its content unbreakable.
sourcepub const IS_TEXT_COMBINED: Self = _
pub const IS_TEXT_COMBINED: Self = _
A flag used to mark text that that has text-combine-upright.
This is used from Gecko’s layout engine.
sourcepub const IS_RELEVANT_LINK_VISITED: Self = _
pub const IS_RELEVANT_LINK_VISITED: Self = _
A flag used to mark styles under a relevant link that is also visited.
sourcepub const IS_IN_PSEUDO_ELEMENT_SUBTREE: Self = _
pub const IS_IN_PSEUDO_ELEMENT_SUBTREE: Self = _
A flag used to mark styles which are a pseudo-element or under one.
sourcepub const SELF_OR_ANCESTOR_HAS_CONTAIN_STYLE: Self = _
pub const SELF_OR_ANCESTOR_HAS_CONTAIN_STYLE: Self = _
A flag used to mark styles which have contain:style or under one.
sourcepub const DISPLAY_DEPENDS_ON_INHERITED_STYLE: Self = _
pub const DISPLAY_DEPENDS_ON_INHERITED_STYLE: Self = _
Whether this style’s display
property depends on our parent style.
This is important because it may affect our optimizations to avoid
computing the style of pseudo-elements, given whether the
pseudo-element is generated depends on the display
value.
sourcepub const CONTENT_DEPENDS_ON_INHERITED_STYLE: Self = _
pub const CONTENT_DEPENDS_ON_INHERITED_STYLE: Self = _
Whether this style’s content
depends on our parent style.
Important because of the same reason.
sourcepub const INHERITS_RESET_STYLE: Self = _
pub const INHERITS_RESET_STYLE: Self = _
Whether the child explicitly inherits any reset property.
sourcepub const DEPENDS_ON_SELF_FONT_METRICS: Self = _
pub const DEPENDS_ON_SELF_FONT_METRICS: Self = _
Whether any value on our style is font-metric-dependent on our primary font.
sourcepub const DEPENDS_ON_INHERITED_FONT_METRICS: Self = _
pub const DEPENDS_ON_INHERITED_FONT_METRICS: Self = _
Whether any value on our style is font-metric-dependent on the primary font of our parent.
sourcepub const CAN_BE_FRAGMENTED: Self = _
pub const CAN_BE_FRAGMENTED: Self = _
Whether the style or any of the ancestors has a multicol style.
Only used in Servo.
sourcepub const IS_ROOT_ELEMENT_STYLE: Self = _
pub const IS_ROOT_ELEMENT_STYLE: Self = _
Whether this style is the style of the document element.
sourcepub const IS_IN_OPACITY_ZERO_SUBTREE: Self = _
pub const IS_IN_OPACITY_ZERO_SUBTREE: Self = _
Whether this element is inside an opacity: 0
subtree.
sourcepub const HAS_AUTHOR_SPECIFIED_BORDER_BACKGROUND: Self = _
pub const HAS_AUTHOR_SPECIFIED_BORDER_BACKGROUND: Self = _
Whether there are author-specified rules for border-* properties (except border-image-*), background-color, or background-image.
TODO(emilio): Maybe do include border-image, see:
https://github.com/w3c/csswg-drafts/issues/4777#issuecomment-604424845
sourcepub const HAS_AUTHOR_SPECIFIED_FONT_FAMILY: Self = _
pub const HAS_AUTHOR_SPECIFIED_FONT_FAMILY: Self = _
Whether there are author-specified rules for font-family
.
sourcepub const HAS_AUTHOR_SPECIFIED_FONT_SYNTHESIS_WEIGHT: Self = _
pub const HAS_AUTHOR_SPECIFIED_FONT_SYNTHESIS_WEIGHT: Self = _
Whether there are author-specified rules for font-synthesis-weight
.
sourcepub const HAS_AUTHOR_SPECIFIED_FONT_SYNTHESIS_STYLE: Self = _
pub const HAS_AUTHOR_SPECIFIED_FONT_SYNTHESIS_STYLE: Self = _
Whether there are author-specified rules for font-synthesis-style
.
sourcepub const HAS_AUTHOR_SPECIFIED_LETTER_SPACING: Self = _
pub const HAS_AUTHOR_SPECIFIED_LETTER_SPACING: Self = _
Whether there are author-specified rules for letter-spacing
.
sourcepub const HAS_AUTHOR_SPECIFIED_WORD_SPACING: Self = _
pub const HAS_AUTHOR_SPECIFIED_WORD_SPACING: Self = _
Whether there are author-specified rules for word-spacing
.
sourcepub const USES_VIEWPORT_UNITS: Self = _
pub const USES_VIEWPORT_UNITS: Self = _
Whether the style depends on viewport units.
sourcepub const USES_VIEWPORT_UNITS_ON_CONTAINER_QUERIES: Self = _
pub const USES_VIEWPORT_UNITS_ON_CONTAINER_QUERIES: Self = _
Whether the style depends on viewport units on container queries.
This needs to be a separate flag from USES_VIEWPORT_UNITS
because
it causes us to re-match the style (rather than re-cascascading it,
which is enough for other uses of viewport units).
sourcepub const SELF_OR_ANCESTOR_HAS_SIZE_CONTAINER_TYPE: Self = _
pub const SELF_OR_ANCESTOR_HAS_SIZE_CONTAINER_TYPE: Self = _
A flag used to mark styles which have container-type
of size
or
inline-size
, or under one.
sourcepub const USES_CONTAINER_UNITS: Self = _
pub const USES_CONTAINER_UNITS: Self = _
Whether the style uses container query units, in which case the style depends on the container’s size and we can’t reuse it across cousins (without double-checking the container at least).
sourcepub const HAS_AUTHOR_SPECIFIED_TEXT_COLOR: Self = _
pub const HAS_AUTHOR_SPECIFIED_TEXT_COLOR: Self = _
Whether there are author-specific rules for text color
.
sourcepub const CONSIDERED_NONTRIVIAL_SCOPED_STYLE: Self = _
pub const CONSIDERED_NONTRIVIAL_SCOPED_STYLE: Self = _
Whether this style considered a scope style rule.
source§impl ComputedValueFlags
impl ComputedValueFlags
sourcepub const fn bits(&self) -> u32
pub const fn bits(&self) -> u32
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
sourcepub const fn from_bits(bits: u32) -> Option<Self>
pub const fn from_bits(bits: u32) -> Option<Self>
Convert from a bits value.
This method will return None
if any unknown bits are set.
sourcepub const fn from_bits_truncate(bits: u32) -> Self
pub const fn from_bits_truncate(bits: u32) -> Self
Convert from a bits value, unsetting any unknown bits.
sourcepub const fn from_bits_retain(bits: u32) -> Self
pub const fn from_bits_retain(bits: u32) -> Self
Convert from a bits value exactly.
sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None
if name
is empty or doesn’t
correspond to any named flag.
sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
remove
won’t truncate other
, but the !
operator will.
sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert
when value
is true
or remove
when value
is false
.
sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&
) of the bits in two flags values.
sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|
) of the bits in two flags values.
sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^
) of the bits in two flags values.
sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!
) of the bits in a flags value, truncating the result.
source§impl ComputedValueFlags
impl ComputedValueFlags
sourcepub const fn iter(&self) -> Iter<ComputedValueFlags>
pub const fn iter(&self) -> Iter<ComputedValueFlags>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
sourcepub const fn iter_names(&self) -> IterNames<ComputedValueFlags>
pub const fn iter_names(&self) -> IterNames<ComputedValueFlags>
Yield a set of contained named flags values.
This method is like iter
, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
source§impl ComputedValueFlags
impl ComputedValueFlags
sourcefn inherited_flags() -> Self
fn inherited_flags() -> Self
Flags that are unconditionally propagated to descendants.
sourcefn maybe_inherited_flags() -> Self
fn maybe_inherited_flags() -> Self
Flags that may be propagated to descendants.
sourcefn cascade_input_flags() -> Self
fn cascade_input_flags() -> Self
Flags that are an input to the cascade.
sourcepub fn inherited(self) -> Self
pub fn inherited(self) -> Self
Returns the flags that are always propagated to descendants.
See StyleAdjuster::set_bits and StyleBuilder.
sourcepub fn maybe_inherited(self) -> Self
pub fn maybe_inherited(self) -> Self
Flags that are conditionally propagated to descendants, just to handle properly style invalidation.
sourcepub fn for_cascade_inputs(self) -> Self
pub fn for_cascade_inputs(self) -> Self
Flags that are an input to the cascade.
Trait Implementations§
source§impl Binary for ComputedValueFlags
impl Binary for ComputedValueFlags
source§impl BitAnd for ComputedValueFlags
impl BitAnd for ComputedValueFlags
source§impl BitAndAssign for ComputedValueFlags
impl BitAndAssign for ComputedValueFlags
source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&
) of the bits in two flags values.
source§impl BitOr for ComputedValueFlags
impl BitOr for ComputedValueFlags
source§fn bitor(self, other: ComputedValueFlags) -> Self
fn bitor(self, other: ComputedValueFlags) -> Self
The bitwise or (|
) of the bits in two flags values.
§type Output = ComputedValueFlags
type Output = ComputedValueFlags
|
operator.source§impl BitOrAssign for ComputedValueFlags
impl BitOrAssign for ComputedValueFlags
source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|
) of the bits in two flags values.
source§impl BitXor for ComputedValueFlags
impl BitXor for ComputedValueFlags
source§impl BitXorAssign for ComputedValueFlags
impl BitXorAssign for ComputedValueFlags
source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^
) of the bits in two flags values.
source§impl Clone for ComputedValueFlags
impl Clone for ComputedValueFlags
source§fn clone(&self) -> ComputedValueFlags
fn clone(&self) -> ComputedValueFlags
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ComputedValueFlags
impl Debug for ComputedValueFlags
source§impl Default for ComputedValueFlags
impl Default for ComputedValueFlags
source§impl Extend<ComputedValueFlags> for ComputedValueFlags
impl Extend<ComputedValueFlags> for ComputedValueFlags
source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|
) of the bits in each flags value.
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl Flags for ComputedValueFlags
impl Flags for ComputedValueFlags
source§const FLAGS: &'static [Flag<ComputedValueFlags>] = _
const FLAGS: &'static [Flag<ComputedValueFlags>] = _
source§fn from_bits_retain(bits: u32) -> ComputedValueFlags
fn from_bits_retain(bits: u32) -> ComputedValueFlags
source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|
) of the bits in two flags values.source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!
). Read moresource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^
) of the bits in two flags values.source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&
) of the bits in two flags values.source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!
). Read moresource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^
) of the bits in two flags values.source§fn complement(self) -> Self
fn complement(self) -> Self
!
) of the bits in a flags value, truncating the result.source§impl FromIterator<ComputedValueFlags> for ComputedValueFlags
impl FromIterator<ComputedValueFlags> for ComputedValueFlags
source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|
) of the bits in each flags value.
source§impl IntoIterator for ComputedValueFlags
impl IntoIterator for ComputedValueFlags
source§impl LowerHex for ComputedValueFlags
impl LowerHex for ComputedValueFlags
source§impl MallocSizeOf for ComputedValueFlags
impl MallocSizeOf for ComputedValueFlags
source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
source§impl Not for ComputedValueFlags
impl Not for ComputedValueFlags
source§impl Octal for ComputedValueFlags
impl Octal for ComputedValueFlags
source§impl PartialEq for ComputedValueFlags
impl PartialEq for ComputedValueFlags
source§fn eq(&self, other: &ComputedValueFlags) -> bool
fn eq(&self, other: &ComputedValueFlags) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Sub for ComputedValueFlags
impl Sub for ComputedValueFlags
source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
§type Output = ComputedValueFlags
type Output = ComputedValueFlags
-
operator.source§impl SubAssign for ComputedValueFlags
impl SubAssign for ComputedValueFlags
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!
).
This method is not equivalent to self & !other
when other
has unknown bits set.
difference
won’t truncate other
, but the !
operator will.
source§impl UpperHex for ComputedValueFlags
impl UpperHex for ComputedValueFlags
impl Copy for ComputedValueFlags
impl Eq for ComputedValueFlags
impl StructuralPartialEq for ComputedValueFlags
Auto Trait Implementations§
impl Freeze for ComputedValueFlags
impl RefUnwindSafe for ComputedValueFlags
impl Send for ComputedValueFlags
impl Sync for ComputedValueFlags
impl Unpin for ComputedValueFlags
impl UnwindSafe for ComputedValueFlags
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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