Skip to main content

IncrementalBreaker

Struct IncrementalBreaker 

Source
pub struct IncrementalBreaker { /* private fields */ }
Expand description

Incremental Knuth-Plass line-break optimizer with paragraph-level caching.

Maintains cached break solutions per paragraph and only recomputes paragraphs that have been modified or whose line width has changed.

Implementations§

Source§

impl IncrementalBreaker

Source

pub fn new(width: usize, objective: ParagraphObjective) -> Self

Create a new incremental breaker with the given line width and objective.

Source

pub fn terminal(width: usize) -> Self

Create a breaker with terminal-optimized defaults.

Source

pub fn width(&self) -> usize

Current line width.

Source

pub fn generation(&self) -> u64

Current generation.

Source

pub fn objective(&self) -> &ParagraphObjective

Current paragraph objective.

Source

pub fn set_width(&mut self, width: usize)

Update the target line width.

All cached solutions are invalidated (width change affects every paragraph).

Source

pub fn set_objective(&mut self, objective: ParagraphObjective)

Update the paragraph objective.

All cached solutions are invalidated.

Source

pub fn invalidate_all(&mut self)

Invalidate all cached solutions, forcing full recomputation on next reflow.

Source

pub fn invalidate_paragraph(&mut self, paragraph_idx: usize)

Invalidate a specific paragraph by index.

Safe to call with out-of-bounds index (no-op).

Source

pub fn notify_edit(&mut self, old_text: &str, event: &EditEvent)

Notify the breaker of a text edit.

This determines which paragraph(s) are affected by the edit and invalidates their cached solutions. The caller must provide the old text so the breaker can locate paragraph boundaries.

Source

pub fn reflow(&mut self, text: &str) -> ReflowResult

Reflow the document text, reusing cached solutions where possible.

This is the primary entry point. It splits the text into paragraphs, checks each against cached solutions, and only recomputes dirty ones.

Source

pub fn reflow_full(&mut self, text: &str) -> ReflowResult

Reflow with forced full recomputation (no caching).

Source

pub fn snapshot(&self) -> BreakerSnapshot

Diagnostic snapshot of the current state.

Trait Implementations§

Source§

impl Clone for IncrementalBreaker

Source§

fn clone(&self) -> IncrementalBreaker

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 IncrementalBreaker

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