Struct style::computed_value_flags::ComputedValueFlags
source · #[repr(C)]pub struct ComputedValueFlags {
bits: 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.
Fields§
§bits: 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 CONSIDERED_RELATIVE_SELECTOR: Self = _
pub const CONSIDERED_RELATIVE_SELECTOR: Self = _
Whether the style evaluated any relative selector.
sourcepub const ANCHORS_RELATIVE_SELECTOR: Self = _
pub const ANCHORS_RELATIVE_SELECTOR: Self = _
Whether the style evaluated the matched element to be an anchor of a relative selector.
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 fn from_bits(bits: u32) -> Option<Self>
pub const fn from_bits(bits: u32) -> Option<Self>
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
sourcepub const fn from_bits_truncate(bits: u32) -> Self
pub const fn from_bits_truncate(bits: u32) -> Self
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
sourcepub const unsafe fn from_bits_unchecked(bits: u32) -> Self
pub const unsafe fn from_bits_unchecked(bits: u32) -> Self
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Safety
The caller of the bitflags!
macro can chose to allow or
disallow extra bits for their bitflags type.
The caller of from_bits_unchecked()
has to ensure that
all bits correspond to a defined flag or that extra bits
are valid for this bitflags type.
sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Returns true
if there are flags common to both self
and other
.
sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Returns true
if all of the flags in other
are contained within self
.
sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Inserts or removes the specified flags depending on the passed value.
sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Returns the intersection between the flags in self
and
other
.
Specifically, the returned set contains only the flags which are
present in both self
and other
.
This is equivalent to using the &
operator (e.g.
ops::BitAnd
), as in flags & other
.
sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
Returns the union of between the flags in self
and other
.
Specifically, the returned set contains all flags which are
present in either self
or other
, including any which are
present in both (see Self::symmetric_difference
if that
is undesirable).
This is equivalent to using the |
operator (e.g.
ops::BitOr
), as in flags | other
.
sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
Returns the difference between the flags in self
and other
.
Specifically, the returned set contains all flags present in
self
, except for the ones present in other
.
It is also conceptually equivalent to the “bit-clear” operation:
flags & !other
(and this syntax is also supported).
This is equivalent to using the -
operator (e.g.
ops::Sub
), as in flags - other
.
sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
Returns the symmetric difference between the flags
in self
and other
.
Specifically, the returned set contains the flags present which
are present in self
or other
, but that are not present in
both. Equivalently, it contains the flags present in exactly
one of the sets self
and other
.
This is equivalent to using the ^
operator (e.g.
ops::BitXor
), as in flags ^ other
.
sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
Returns the complement of this set of flags.
Specifically, the returned set contains all the flags which are
not set in self
, but which are allowed for this type.
Alternatively, it can be thought of as the set difference
between Self::all()
and self
(e.g. Self::all() - self
)
This is equivalent to using the !
operator (e.g.
ops::Not
), as in !flags
.
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 BitAndAssign<ComputedValueFlags> for ComputedValueFlags
impl BitAndAssign<ComputedValueFlags> for ComputedValueFlags
source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
Disables all flags disabled in the set.
source§impl BitOr<ComputedValueFlags> for ComputedValueFlags
impl BitOr<ComputedValueFlags> for ComputedValueFlags
source§fn bitor(self, other: ComputedValueFlags) -> Self
fn bitor(self, other: ComputedValueFlags) -> Self
Returns the union of the two sets of flags.
§type Output = ComputedValueFlags
type Output = ComputedValueFlags
|
operator.source§impl BitOrAssign<ComputedValueFlags> for ComputedValueFlags
impl BitOrAssign<ComputedValueFlags> for ComputedValueFlags
source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
Adds the set of flags.
source§impl BitXorAssign<ComputedValueFlags> for ComputedValueFlags
impl BitXorAssign<ComputedValueFlags> for ComputedValueFlags
source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
Toggles the set of flags.
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)
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 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
source§impl Hash for ComputedValueFlags
impl Hash for ComputedValueFlags
source§impl LowerHex for ComputedValueFlags
impl LowerHex for ComputedValueFlags
source§impl Not for ComputedValueFlags
impl Not for ComputedValueFlags
source§impl Octal for ComputedValueFlags
impl Octal for ComputedValueFlags
source§impl Ord for ComputedValueFlags
impl Ord for ComputedValueFlags
source§fn cmp(&self, other: &ComputedValueFlags) -> Ordering
fn cmp(&self, other: &ComputedValueFlags) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<ComputedValueFlags> for ComputedValueFlags
impl PartialEq<ComputedValueFlags> 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 PartialOrd<ComputedValueFlags> for ComputedValueFlags
impl PartialOrd<ComputedValueFlags> for ComputedValueFlags
source§fn partial_cmp(&self, other: &ComputedValueFlags) -> Option<Ordering>
fn partial_cmp(&self, other: &ComputedValueFlags) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Sub<ComputedValueFlags> for ComputedValueFlags
impl Sub<ComputedValueFlags> for ComputedValueFlags
source§impl SubAssign<ComputedValueFlags> for ComputedValueFlags
impl SubAssign<ComputedValueFlags> for ComputedValueFlags
source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
Disables all flags enabled in the set.
source§impl UpperHex for ComputedValueFlags
impl UpperHex for ComputedValueFlags
impl Copy for ComputedValueFlags
impl Eq for ComputedValueFlags
impl StructuralEq for ComputedValueFlags
impl StructuralPartialEq for ComputedValueFlags
Auto Trait Implementations§
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 Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.