Skip to main content

Screen

Struct Screen 

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

The diff renderer - maintains previous frame and emits minimal ANSI updates.

Implementations§

Source§

impl Screen

Source

pub fn new() -> Self

Source

pub fn prev_viewport_top(&self) -> usize

Viewport top position (first visible line in terminal)

Source

pub fn hardware_cursor_row(&self) -> usize

The row where the hardware cursor physically sits after the last render. Used by TUI to position the cursor to the marker position via relative movements (matching pi’s approach).

Source

pub fn set_hardware_cursor_row(&mut self, row: usize)

Update the tracked hardware cursor row after TUI repositions the cursor (matching pi’s hardwareCursorRow = targetRow in positionHardwareCursor).

Source

pub fn prev_width(&self) -> usize

Source

pub fn prev_height(&self) -> usize

Source

pub fn full_redraw_count(&self) -> usize

Source

pub fn total_lines(&self) -> usize

Total number of lines in the last rendered frame.

Source

pub fn finalize(&mut self, writer: &mut dyn Write) -> Result<()>

Move cursor to one line past all rendered content (for clean program exit). Writes the ANSI cursor-positioning sequences and \r\n so that subsequent shell output appears on a fresh line after all TUI content.

Source

pub fn set_clear_on_shrink(&mut self, enabled: bool)

Source

pub fn set_use_sync_output(&mut self, enabled: bool)

Enable or disable synchronized output markers (\x1b[?2026h / \x1b[?2026l). Enabled by default (matching pi’s always-on approach).

Source

pub fn render( &mut self, new_lines: Vec<String>, width: u16, height: u16, writer: &mut dyn Write, ) -> Result<Option<(usize, usize)>>

Render new lines to the terminal using differential updates. writer should be the terminal’s stdout (in raw mode). width and height are the current terminal dimensions.

Lines may contain cursor markers (CURSOR_MARKER) which are extracted and used for cursor tracking. Returns the cursor (row, col) position if a marker was found, or None.

Trait Implementations§

Source§

impl Default for Screen

Source§

fn default() -> Self

Returns the “default value” for a type. 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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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