Skip to main content

FontVerticalMetrics

Struct FontVerticalMetrics 

Source
pub struct FontVerticalMetrics {
    pub units_per_em: u16,
    pub ascender: i16,
    pub descender: i16,
    pub line_gap: i16,
}
Expand description

Font-wide vertical metrics needed to compute line height, in font design units.

This is a deliberately minimal, font-library-agnostic mirror of the ascender/descender/line-gap fields found in a font’s hhea/OS/2 tables. Higher layers (e.g. the oxitext facade) translate their font library’s richer metrics type into this struct so the layout engine stays free of any font-parser dependency.

Convert to pixels with value * (font_size_px / units_per_em).

Fields§

§units_per_em: u16

Design units per em (typically 1000 for CFF, 2048 for TrueType).

§ascender: i16

Typographic ascender in design units (positive, above baseline).

§descender: i16

Typographic descender in design units (negative, below baseline).

§line_gap: i16

Typographic line gap (extra leading between lines), in design units.

Implementations§

Source§

impl FontVerticalMetrics

Source

pub fn ascent_px(&self, font_size_px: f32) -> f32

Returns the pixel ascent (always positive) at font_size_px.

Source

pub fn descent_px(&self, font_size_px: f32) -> f32

Returns the pixel descent depth (always positive) at font_size_px.

Source

pub fn line_gap_px(&self, font_size_px: f32) -> f32

Returns the pixel line gap at font_size_px.

Trait Implementations§

Source§

impl Clone for FontVerticalMetrics

Source§

fn clone(&self) -> FontVerticalMetrics

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 FontVerticalMetrics

Source§

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

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

impl PartialEq for FontVerticalMetrics

Source§

fn eq(&self, other: &FontVerticalMetrics) -> 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 FontVerticalMetrics

Source§

impl Eq for FontVerticalMetrics

Source§

impl StructuralPartialEq for FontVerticalMetrics

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