pub struct DeterministicTextMeasurer {
pub char_width_factor: f64,
pub line_height_factor: f64,
}Fields§
§char_width_factor: f64§line_height_factor: f64Implementations§
Source§impl DeterministicTextMeasurer
impl DeterministicTextMeasurer
Sourcepub fn with_width_callback(
self,
width_px: impl Fn(&str, &TextStyle) -> f64 + Send + Sync + 'static,
) -> Arc<dyn TextMeasurer + Send + Sync> ⓘ
pub fn with_width_callback( self, width_px: impl Fn(&str, &TextStyle) -> f64 + Send + Sync + 'static, ) -> Arc<dyn TextMeasurer + Send + Sync> ⓘ
Uses caller-supplied widths with Merman’s wrapping behavior.
Uses width_px to measure complete candidate strings while Merman retains its wrapping and
line-height behavior. Vertical metrics and baseline offsets remain deterministic
approximations; the callback does not provide glyph bounds or font ascent/descent.
The callback must return a finite, non-negative width in CSS pixels. Use
crate::environment::HostTextMeasurer when measurement can fail or vary by operation.
pub fn normalized_text_lines(text: &str) -> Vec<String>
Trait Implementations§
Source§impl Clone for DeterministicTextMeasurer
impl Clone for DeterministicTextMeasurer
Source§impl Debug for DeterministicTextMeasurer
impl Debug for DeterministicTextMeasurer
Source§impl Default for DeterministicTextMeasurer
impl Default for DeterministicTextMeasurer
Source§impl TextMeasurer for DeterministicTextMeasurer
impl TextMeasurer for DeterministicTextMeasurer
fn measure(&self, text: &str, style: &TextStyle) -> TextMetrics
fn measure_wrapped( &self, text: &str, style: &TextStyle, max_width: Option<f64>, wrap_mode: WrapMode, ) -> TextMetrics
Source§fn measure_wrapped_with_raw_width(
&self,
text: &str,
style: &TextStyle,
max_width: Option<f64>,
wrap_mode: WrapMode,
) -> (TextMetrics, Option<f64>)
fn measure_wrapped_with_raw_width( &self, text: &str, style: &TextStyle, max_width: Option<f64>, wrap_mode: WrapMode, ) -> (TextMetrics, Option<f64>)
Measures wrapped text and (optionally) returns the unwrapped width for the same payload. Read more
Source§fn measure_mermaid_calculate_text_dimensions(
&self,
text: &str,
style: &TextStyle,
) -> TextMetrics
fn measure_mermaid_calculate_text_dimensions( &self, text: &str, style: &TextStyle, ) -> TextMetrics
Measures one SVG row using Mermaid’s body-attached
calculateTextDimensions(...) probe. Read moreSource§fn measure_svg_simple_text_bbox_height_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_simple_text_bbox_height_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures the bbox height for Mermaid
drawSimpleText(...).getBBox().height-style probes. Read moreSource§fn measure_svg_tspan_text_bbox_height_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_tspan_text_bbox_height_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures the bbox height of a
<text> node whose visible rows are child <tspan> nodes.Source§fn measure_svg_text_computed_length_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_text_computed_length_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures SVG
<tspan>.getComputedTextLength()-like widths (advance length along the
baseline). Read moreSource§fn measure_svg_text_bbox_x_with_ascii_overhang(
&self,
text: &str,
style: &TextStyle,
) -> (f64, f64)
fn measure_svg_text_bbox_x_with_ascii_overhang( &self, text: &str, style: &TextStyle, ) -> (f64, f64)
Measures SVG
<text>.getBBox() horizontal extents while including ASCII overhang. Read moreSource§fn measure_svg_title_bbox_x(&self, text: &str, style: &TextStyle) -> (f64, f64)
fn measure_svg_title_bbox_x(&self, text: &str, style: &TextStyle) -> (f64, f64)
Measures the horizontal extents for Mermaid diagram titles rendered as a single
<text>
node (no whitespace-tokenized <tspan> runs). Read moreSource§fn measure_svg_simple_text_bbox_width_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_simple_text_bbox_width_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures the bbox width for Mermaid
drawSimpleText(...).getBBox().width-style probes
(used by upstream calculateTextWidth). Read moreSource§fn measure_svg_raw_text_bbox_width_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_raw_text_bbox_width_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures raw SVG
<text>.getBBox().width for diagram renderers that append text directly. Read moreSource§fn measure_svg_raw_text_bbox_height_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_raw_text_bbox_height_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures raw SVG
<text>.getBBox().height for direct text content. Read moreSource§fn measure_svg_text_bounding_client_rect_width_px(
&self,
text: &str,
style: &TextStyle,
) -> f64
fn measure_svg_text_bounding_client_rect_width_px( &self, text: &str, style: &TextStyle, ) -> f64
Measures the CSS pixel width returned by SVG
<text>.getBoundingClientRect().width. Read moreSource§fn measure_svg_create_text_bbox_y_offset_px(
&self,
_text: &str,
_style: &TextStyle,
) -> f64
fn measure_svg_create_text_bbox_y_offset_px( &self, _text: &str, _style: &TextStyle, ) -> f64
Source§fn measure_svg_create_text_middle_bbox_y_offset_px(
&self,
_text: &str,
_style: &TextStyle,
) -> f64
fn measure_svg_create_text_middle_bbox_y_offset_px( &self, _text: &str, _style: &TextStyle, ) -> f64
Measures the same
createFormattedText(...) bbox y offset after the outer Architecture
label container applies inherited dominant-baseline: middle. Read moreAuto Trait Implementations§
impl Freeze for DeterministicTextMeasurer
impl RefUnwindSafe for DeterministicTextMeasurer
impl Send for DeterministicTextMeasurer
impl Sync for DeterministicTextMeasurer
impl Unpin for DeterministicTextMeasurer
impl UnsafeUnpin for DeterministicTextMeasurer
impl UnwindSafe for DeterministicTextMeasurer
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
👎Deprecated since 0.7.7:
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
👎Deprecated since 0.7.7:
replaced by palette::chromatic_adaptation::AdaptIntoUnclamped
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
impl<T, C> AdaptIntoUnclamped<T> for Cwhere
T: AdaptFromUnclamped<C>,
Source§type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
type Scalar = <T as AdaptFromUnclamped<C>>::Scalar
The number type that’s used as the color’s components.
Source§fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
fn adapt_into_unclamped_with<M>(self) -> Twhere
M: LmsToXyz<<C as AdaptIntoUnclamped<T>>::Scalar> + XyzToLms<<C as AdaptIntoUnclamped<T>>::Scalar>,
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T, C> ComponentsInto<C> for T
impl<T, C> ComponentsInto<C> for T
Source§fn components_into(self) -> C
fn components_into(self) -> C
Cast this collection of color components into a collection of colors. Read more
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read more