Skip to main content

LayoutLine

Struct LayoutLine 

Source
pub struct LayoutLine {
    pub items: Vec<LineItem>,
    pub width: f64,
    pub ascent: f64,
    pub descent: f64,
    pub line_gap: f64,
    pub height: f64,
    pub indent_left: f64,
    pub available_width: f64,
    pub is_last: bool,
    pub forced_break_after: Option<ForcedBreakKind>,
}
Expand description

A laid-out line within a paragraph.

Fields§

§items: Vec<LineItem>§width: f64

Total content width of the line.

Spaces that end a line hang past its end, so they can take this past available_width. See LayoutLine::hanging_space_counts.

§ascent: f64

Maximum ascent on this line (above baseline).

§descent: f64

Maximum descent on this line (below baseline).

§line_gap: f64

Effective leading needed to preserve the tallest run’s natural advance.

§height: f64

Total line height.

§indent_left: f64

Left indent for this line.

§available_width: f64

Available width this line was laid out against.

§is_last: bool

Whether this is the last line of the paragraph.

§forced_break_after: Option<ForcedBreakKind>

The explicit break that ended this line, when present.

Implementations§

Source§

impl LayoutLine

Source

pub fn baseline_offset(&self) -> f64

Distance from the line-box top to its text baseline.

Source

pub fn hanging_space_counts(&self) -> (usize, usize)

How many items at the visual start and at the visual end of the line are spaces that end it logically.

Those spaces hang past the line end, which is its visual right in left-to-right text and its visual left in right-to-left text. Alignment leaves them out of the width, and they may pass the available width.

Plain text is never reordered, so its spaces hang at the visual end, after an item that is not a space. Line breaking gives the spaces that end a plain line an item of their own.

Trait Implementations§

Source§

impl Clone for LayoutLine

Source§

fn clone(&self) -> Self

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 LayoutLine

Source§

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

Formats the value using the given formatter. Read more

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<T> ErasedDestructor for T
where T: 'static,

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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.