Skip to main content

WritingModeContext

Struct WritingModeContext 

Source
pub struct WritingModeContext {
    pub writing_mode: LayoutWritingMode,
    pub direction: StyleDirection,
    pub text_orientation: StyleTextOrientation,
}
Expand description

Captures the resolved writing mode context for a node.

This struct bundles together all the CSS properties that affect how logical directions (inline/block) map to physical directions (x/y). Spec agents should use this struct to implement writing-mode-aware layout.

§CSS Writing Modes Level 4

  • writing-mode determines the block flow direction and inline base direction
  • direction determines the inline base direction (ltr or rtl)
  • text-orientation determines glyph orientation in vertical writing modes

Fields§

§writing_mode: LayoutWritingMode§direction: StyleDirection§text_orientation: StyleTextOrientation

Implementations§

Source§

impl WritingModeContext

Source

pub fn new( writing_mode: LayoutWritingMode, direction: StyleDirection, text_orientation: StyleTextOrientation, ) -> Self

Constructs a WritingModeContext, applying spec-mandated overrides.

Source

pub fn used_direction(&self) -> StyleDirection

Returns the used value of direction, accounting for text-orientation: upright which forces direction to ltr in vertical writing modes per CSS Writing Modes 4 §5.1.

Source

pub fn is_horizontal(&self) -> bool

Returns true if the writing mode is horizontal (HorizontalTb).

When true, the inline axis is horizontal and the block axis is vertical.

Source

pub fn inline_size_is_width(&self) -> bool

Returns true if the inline size corresponds to the physical width.

In horizontal writing modes, inline size = width. In vertical writing modes, inline size = height.

Source

pub fn block_size_is_height(&self) -> bool

Returns true if the block size corresponds to the physical height.

In horizontal writing modes, block size = height. In vertical writing modes, block size = width.

Source

pub fn is_inline_reversed(&self) -> bool

Returns true if the inline direction is reversed (RTL in horizontal, or bottom-to-top in certain vertical modes).

Trait Implementations§

Source§

impl Clone for WritingModeContext

Source§

fn clone(&self) -> WritingModeContext

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WritingModeContext

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for WritingModeContext

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for WritingModeContext

Source§

fn eq(&self, other: &WritingModeContext) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for WritingModeContext

Source§

impl Eq for WritingModeContext

Source§

impl StructuralPartialEq for WritingModeContext

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.