Skip to main content

TerminalSession

Struct TerminalSession 

Source
pub struct TerminalSession<'a, C: RawModeControl + CommandWriter + KeyboardEnhancementQuery + ?Sized> { /* private fields */ }
Expand description

A guard for every terminal state successfully acquired during entry.

Call restore on normal and error returns so restoration errors can be reported. Drop is the final guard during panic unwinding. It cannot report restoration failures. The session cannot restore the cursor’s pre-entry position, process aborts, kill -9, or signals whose handling never unwinds through this value.

Implementations§

Source§

impl<'a, C> TerminalSession<'a, C>

Source

pub fn enter( control: &'a mut C, options: SessionOptions, ) -> Result<Self, SessionError>

Acquires the requested modes, restoring partial state if entry fails.

Source

pub fn control_mut(&mut self) -> &mut C

Borrows the underlying control while the session remains active.

Source

pub fn restore(&mut self) -> Result<()>

Attempts every outstanding restoration in reverse acquisition order.

The first error is returned after all remaining steps and the final flush have been attempted. Repeated calls are no-ops.

Trait Implementations§

Source§

impl<C> Drop for TerminalSession<'_, C>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'a, C> Freeze for TerminalSession<'a, C>
where C: ?Sized,

§

impl<'a, C> RefUnwindSafe for TerminalSession<'a, C>
where C: RefUnwindSafe + ?Sized,

§

impl<'a, C> Send for TerminalSession<'a, C>
where C: Send + ?Sized,

§

impl<'a, C> Sync for TerminalSession<'a, C>
where C: Sync + ?Sized,

§

impl<'a, C> Unpin for TerminalSession<'a, C>
where C: ?Sized,

§

impl<'a, C> UnsafeUnpin for TerminalSession<'a, C>
where C: ?Sized,

§

impl<'a, C> !UnwindSafe for TerminalSession<'a, C>

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