pub struct InteractivePtySession { /* private fields */ }Expand description
Re-exported native PTY process and interactive session types. Canonical interactive PTY recipe for downstream Rust consumers.
NativePtyProcess remains the low-level primitive. This wrapper owns the
interactive setup that callers commonly forget to assemble correctly.
Implementations§
Source§impl InteractivePtySession
impl InteractivePtySession
Sourcepub fn new(process: NativePtyProcess) -> Self
pub fn new(process: NativePtyProcess) -> Self
Create an interactive PTY session with default options.
Sourcepub fn with_options(
process: NativePtyProcess,
options: InteractivePtyOptions,
) -> Self
pub fn with_options( process: NativePtyProcess, options: InteractivePtyOptions, ) -> Self
Create an interactive PTY session with explicit options.
Sourcepub fn process(&self) -> &NativePtyProcess
pub fn process(&self) -> &NativePtyProcess
Return the wrapped low-level PTY process.
Sourcepub fn start(&self) -> Result<(), PtyError>
pub fn start(&self) -> Result<(), PtyError>
Start the wrapped PTY process and configured interactive helpers.
Sourcepub fn pump_output(
&self,
timeout: Option<f64>,
consume_all: bool,
) -> Result<InteractivePtyPumpResult, PtyError>
pub fn pump_output( &self, timeout: Option<f64>, consume_all: bool, ) -> Result<InteractivePtyPumpResult, PtyError>
Read and optionally drain available PTY output.
When query responses are enabled, terminal queries in each chunk are answered before the chunk is returned.
Sourcepub fn send_interrupt(&self) -> Result<(), PtyError>
pub fn send_interrupt(&self) -> Result<(), PtyError>
Send an interrupt to the interactive PTY child.
Sourcepub fn wait(&self, timeout: Option<f64>) -> Result<i32, PtyError>
pub fn wait(&self, timeout: Option<f64>) -> Result<i32, PtyError>
Wait for the interactive PTY child to exit.
Sourcepub fn wait_and_drain(
&self,
timeout: Option<f64>,
drain_timeout: f64,
) -> Result<i32, PtyError>
pub fn wait_and_drain( &self, timeout: Option<f64>, drain_timeout: f64, ) -> Result<i32, PtyError>
Wait for the child to exit, then drain remaining PTY output.
Auto Trait Implementations§
impl !Freeze for InteractivePtySession
impl RefUnwindSafe for InteractivePtySession
impl Send for InteractivePtySession
impl Sync for InteractivePtySession
impl Unpin for InteractivePtySession
impl UnsafeUnpin for InteractivePtySession
impl UnwindSafe for InteractivePtySession
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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