Skip to main content

TextMetrics

Struct TextMetrics 

Source
pub struct TextMetrics {
    pub font_size_px: f64,
    pub letter_spacing_px: f64,
    pub text_transform: TextTransform,
    pub monospace: bool,
}
Expand description

Text-shaping parameters that influence the rendered width of a label.

TextMetrics is how layout code feeds theme typography into the width estimator so margins, tick spacing, label strategy, legend packing, and truncation all see the same width the SVG renderer will eventually paint.

The default is calibrated to Theme::default(): a 12px sans-serif face with no letter spacing and no text transform. measure_text(text, default) is therefore guaranteed to return exactly the legacy approximate_text_width(text) value — this is the backward-compatibility contract that keeps the pre-theme-hooks golden snapshots byte-identical.

Fields§

§font_size_px: f64

Rendered font size in pixels.

§letter_spacing_px: f64

Extra CSS letter-spacing in pixels applied between glyphs.

§text_transform: TextTransform

text-transform that will be applied by the renderer.

§monospace: bool

Whether the rendered font is a monospace face. Monospace glyphs are noticeably wider than the sans-serif calibration; this flag lets the measurement apply a per-character width correction.

Implementations§

Source§

impl TextMetrics

Source

pub fn is_legacy_default(&self) -> bool

True when these metrics exactly match the legacy calibration. When true, measure_text short-circuits to approximate_text_width so layout output is bit-for-bit identical to the pre-3.1 behavior.

Source

pub fn from_theme_tick_value(theme: &Theme) -> Self

Build TextMetrics for numeric tick labels from a theme.

Returns the legacy-default metrics (byte-identical to approximate_text_width) when every relevant field on theme matches Theme::default(). Any divergence flips the layout path to the full measure_text measurement.

Source

pub fn from_theme_axis_label(theme: &Theme) -> Self

Build TextMetrics for axis/category labels from a theme.

Source

pub fn from_theme_legend(theme: &Theme) -> Self

Build TextMetrics for legend labels from a theme.

Source

pub fn from_theme_title(theme: &Theme) -> Self

Build TextMetrics for the chart title from a theme.

Trait Implementations§

Source§

impl Clone for TextMetrics

Source§

fn clone(&self) -> TextMetrics

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for TextMetrics

Source§

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

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

impl Default for TextMetrics

Source§

fn default() -> Self

Default metrics match the Theme::default() legacy assumptions (12px sans-serif, no letter spacing, no transform). Feeding default metrics to measure_text produces output byte-identical to the legacy approximate_text_width.

Source§

impl PartialEq for TextMetrics

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 StructuralPartialEq for TextMetrics

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

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,