Skip to main content

SuspendGuard

Struct SuspendGuard 

Source
pub struct SuspendGuard<'a, W: Write> { /* private fields */ }
Expand description

RAII guard returned by Crossterm::suspend; see that method’s docs for the full contract.

Borrows the suspended Crossterm mutably for its whole lifetime, so no other method on it can be called (accidentally drawing, polling, or moving the cursor) while the real terminal is handed back to the OS/shell.

Implementations§

Source§

impl<W: Write> SuspendGuard<'_, W>

Source

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

Restores every option the suspended Crossterm was originally built with and forces a full redraw on the next [Output::draw]. Equivalent to letting the guard drop, but lets a caller observe the std::io::Error a dropped guard would otherwise discard.

§Errors

Returns an std::io::Error if any of the terminal-restoring commands fail (e.g. a closed terminal or disconnected pipe).

Trait Implementations§

Source§

impl<W: Write> Drop for SuspendGuard<'_, W>

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, W> Freeze for SuspendGuard<'a, W>

§

impl<'a, W> RefUnwindSafe for SuspendGuard<'a, W>
where W: RefUnwindSafe,

§

impl<'a, W> Send for SuspendGuard<'a, W>
where W: Send,

§

impl<'a, W> Sync for SuspendGuard<'a, W>
where W: Sync,

§

impl<'a, W> Unpin for SuspendGuard<'a, W>

§

impl<'a, W> UnsafeUnpin for SuspendGuard<'a, W>

§

impl<'a, W> !UnwindSafe for SuspendGuard<'a, W>

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

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

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more