pub struct TerminalSession { /* private fields */ }Expand description
Low-level RAII guard for terminal raw mode, bracketed paste, and mouse capture.
Creating a TerminalSession enables raw mode (and optionally bracketed paste and mouse capture). When the session is dropped, all terminal state is restored automatically.
Most callers should use TerminalRuntime instead of managing a TerminalSession directly.
§Usage
use tui::{TerminalSession, MouseCapture};
let _session = TerminalSession::new(
true, // enable bracketed paste
MouseCapture::Enabled,
)?;
// Terminal is now in raw mode with paste and mouse capture.
// Dropping `_session` restores the terminal.§MouseCapture
Disabled— No mouse events are reported.Enabled— Mouse clicks, scrolls, and drags are reported as events.
§Related
TerminalRuntime— High-level runtime that owns the session, renderer, and event source. Preferred for interactive apps.terminal_size()— Returns the current terminal dimensions as(columns, rows).
Implementations§
Source§impl TerminalSession
impl TerminalSession
pub fn new( enable_bracketed_paste: bool, mouse_capture: MouseCapture, ) -> Result<Self>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TerminalSession
impl RefUnwindSafe for TerminalSession
impl Send for TerminalSession
impl Sync for TerminalSession
impl Unpin for TerminalSession
impl UnsafeUnpin for TerminalSession
impl UnwindSafe for TerminalSession
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more