Skip to main content

AlternateScreenSession

Struct AlternateScreenSession 

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

Manages entering and exiting alternate screen with proper state preservation

This struct ensures that terminal state is properly saved before entering alternate screen and restored when exiting, even in the presence of errors.

§Example

use vtcode_tui::core_tui::alternate_screen::AlternateScreenSession;

// Run a closure in alternate screen with automatic cleanup
let result = AlternateScreenSession::run(|| {
    // Your code that runs in alternate screen
    println!("Running in alternate screen!");
    Ok(())
})?;

Implementations§

Source§

impl AlternateScreenSession

Source

pub fn enter() -> Result<Self>

Enter alternate screen, saving current terminal state

This will:

  1. Save the current terminal state
  2. Enter alternate screen
  3. Enable raw mode
  4. Enable bracketed paste
  5. Enable focus change events (if supported)
  6. Push keyboard enhancement flags (if supported)
§Errors

Returns an error if any terminal operation fails.

Source

pub fn exit(self) -> Result<()>

Exit alternate screen, restoring original terminal state

This will:

  1. Pop keyboard enhancement flags (if they were pushed)
  2. Disable focus change events (if they were enabled)
  3. Disable bracketed paste (if it was enabled)
  4. Disable raw mode (if it was enabled)
  5. Leave alternate screen
§Errors

Returns an error if any terminal operation fails. However, this method will attempt to restore as much state as possible even if some operations fail.

Source

pub fn run<F, T>(f: F) -> Result<T>
where F: FnOnce() -> Result<T>,

Run a closure in alternate screen with automatic cleanup

This is a convenience method that handles entering and exiting alternate screen automatically, ensuring cleanup happens even if the closure panics.

§Errors

Returns an error if entering/exiting alternate screen fails, or if the closure returns an error.

Trait Implementations§

Source§

impl Drop for AlternateScreenSession

Source§

fn drop(&mut self)

Executes the destructor for this 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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