pub struct InlineRenderer<W: Write> { /* private fields */ }Expand description
Inline mode renderer implementing the one-writer rule.
This struct owns terminal output and enforces that all writes go through it.
Cleanup is guaranteed via Drop.
Implementations§
Source§impl<W: Write> InlineRenderer<W>
impl<W: Write> InlineRenderer<W>
Sourcepub fn new(writer: W, config: InlineConfig) -> Self
pub fn new(writer: W, config: InlineConfig) -> Self
Create a new inline renderer.
§Arguments
writer- The terminal output (takes ownership to enforce one-writer rule).config- Inline mode configuration.
Sourcepub fn enter(&mut self) -> Result<()>
pub fn enter(&mut self) -> Result<()>
Initialize inline mode on the terminal.
For scroll-region strategy, this sets up DECSTBM. For overlay/hybrid strategy, this just prepares state.
Sourcepub fn write_log(&mut self, text: &str) -> Result<()>
pub fn write_log(&mut self, text: &str) -> Result<()>
Write log output (goes to scrollback region).
In scroll-region mode: writes to current cursor position in scroll region. In overlay mode: saves cursor, writes, then restores cursor.
Returns Ok(()) even if there’s no log region (logs are silently dropped
when UI takes the full terminal height).
Sourcepub fn present_ui<F>(&mut self, render_fn: F) -> Result<()>
pub fn present_ui<F>(&mut self, render_fn: F) -> Result<()>
Present a UI frame.
§Invariants
- Cursor position is saved before and restored after.
- UI region is redrawn without affecting scrollback.
- Synchronized output wraps the operation if enabled.
Trait Implementations§
Auto Trait Implementations§
impl<W> Freeze for InlineRenderer<W>where
W: Freeze,
impl<W> RefUnwindSafe for InlineRenderer<W>where
W: RefUnwindSafe,
impl<W> Send for InlineRenderer<W>where
W: Send,
impl<W> Sync for InlineRenderer<W>where
W: Sync,
impl<W> Unpin for InlineRenderer<W>where
W: Unpin,
impl<W> UnsafeUnpin for InlineRenderer<W>where
W: UnsafeUnpin,
impl<W> UnwindSafe for InlineRenderer<W>where
W: UnwindSafe,
Blanket Implementations§
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