pub struct TerminalSession { /* private fields */ }Expand description
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.
§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
spawn_terminal_event_task()— Spawns a blocking tokio task that reads crossterm events and sends them over anmpsc::UnboundedReceiver<CrosstermEvent>. Pair this with aTerminalSessionto build an event loop.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