pub struct Modifier(/* private fields */);Expand description
Bitset of style modifiers (bold, italic, etc.).
Implemented as a plain u8 rather than bitflags! to keep the crate’s
dependency cone untouched. The bit layout is private; use the named
constants and BitOr operator to compose values.
Combining modifiers with | and testing membership with Modifier::contains
is the intended composition pattern. Pair Modifier::REVERSED with a
semantic colour from super::palette to satisfy the project’s
accessibility contract (color is never the sole distinguishing signal).
§Examples
use rlevo_core::render::styled::Modifier;
let m = Modifier::BOLD | Modifier::UNDERLINED;
assert!(m.contains(Modifier::BOLD));
assert!(m.contains(Modifier::UNDERLINED));
assert!(!m.contains(Modifier::ITALIC));
// Hue-redundant hazard signal: combine REVERSED with a red foreground.
let hazard = Modifier::BOLD | Modifier::REVERSED;
assert!(hazard.contains(Modifier::REVERSED));Implementations§
Source§impl Modifier
impl Modifier
Sourcepub const UNDERLINED: Self
pub const UNDERLINED: Self
Underlined text.
Sourcepub const REVERSED: Self
pub const REVERSED: Self
Reversed foreground/background. Pairs with HAZARD_FG to add the
hue-redundant signal required by the project accessibility contract.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
Return the intersection of two modifier sets.
Trait Implementations§
Source§impl BitOrAssign for Modifier
impl BitOrAssign for Modifier
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Performs the
|= operation. Read moreimpl Copy for Modifier
Source§impl<'de> Deserialize<'de> for Modifier
impl<'de> Deserialize<'de> for Modifier
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Modifier
impl StructuralPartialEq for Modifier
Auto Trait Implementations§
impl Freeze for Modifier
impl RefUnwindSafe for Modifier
impl Send for Modifier
impl Sync for Modifier
impl Unpin for Modifier
impl UnsafeUnpin for Modifier
impl UnwindSafe for Modifier
Blanket Implementations§
impl<T> Boilerplate for T
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<T> CacheValue for T
Source§impl<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
Compare self to
key and return true if they are equal.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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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