Skip to main content

ShapingFallback

Struct ShapingFallback 

Source
pub struct ShapingFallback<S: TextShaper = NoopShaper> { /* private fields */ }
Expand description

Transparent shaping with guaranteed fallback.

Wraps an optional primary shaper and a NoopShaper fallback. Always produces a valid ShapedLineLayout regardless of whether the primary shaper is available or succeeds.

The output layout has identical API surface for both paths, so downstream code (cursor, selection, copy, rendering) does not need to branch on which shaping path was used.

Implementations§

Source§

impl ShapingFallback<NoopShaper>

Source

pub fn terminal() -> Self

Create a terminal-mode fallback (always uses NoopShaper).

Source§

impl<S: TextShaper> ShapingFallback<S>

Source

pub fn with_shaper(shaper: S, capabilities: RuntimeCapability) -> Self

Create a fallback with a primary shaper.

Source

pub fn set_features(&mut self, features: FontFeatures)

Set the font features used for shaping.

Source

pub fn set_shaping_tier(&mut self, tier: LayoutTier)

Set the minimum tier for shaping.

Source

pub fn set_capabilities(&mut self, caps: RuntimeCapability)

Update runtime capabilities (e.g., after font load/unload).

Source

pub fn set_validate_output(&mut self, validate: bool)

Enable or disable output validation.

Source

pub fn shape_line( &self, text: &str, script: Script, direction: RunDirection, ) -> (ShapedLineLayout, FallbackEvent)

Shape a line of text with automatic fallback.

Returns the layout and a diagnostic event describing which path was taken. The layout is guaranteed to be valid and non-empty for non-empty input.

Source

pub fn shape_lines( &self, lines: &[&str], script: Script, direction: RunDirection, ) -> (Vec<ShapedLineLayout>, FallbackStats)

Shape multiple lines with fallback, collecting stats.

Returns layouts and accumulated statistics.

Auto Trait Implementations§

§

impl<S> Freeze for ShapingFallback<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for ShapingFallback<S>
where S: RefUnwindSafe,

§

impl<S> Send for ShapingFallback<S>
where S: Send,

§

impl<S> Sync for ShapingFallback<S>
where S: Sync,

§

impl<S> Unpin for ShapingFallback<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for ShapingFallback<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for ShapingFallback<S>
where S: UnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more