Crate pty_process[−][src]
This crate adds a helper method to
std::process::Command
(and optionally its
equivalent in various async frameworks) to allocate a pty to spawn the
process into. This allows for manipulation of interactive programs.
The basic functionality is provided by the Command
trait in
this crate:
use pty_process::Command as _; let mut cmd = std::process::Command::new("nethack"); let child = cmd.spawn_pty(Some(&pty_process::Size::new(24, 80))).unwrap();
The child
instance returned by the call to
spawn_pty
is a thin wrapper around the Child
struct associated with the Command
module used. You can use it
identically to how you would use the normal
std::process::Child
instance, but it also
provides additional methods for interacting with the pty:
use std::io::Write as _; child.pty().write_all(b"foo\n").unwrap(); child.resize_pty(&pty_process::Size::new(30, 100)).unwrap(); let status = child.wait().unwrap();
The available implementations are gated by features:
backend-std
: Add an implementation forstd::process::Command
. Enabled by default.backend-smol
: Add an implementation forsmol::process::Command
.backend-async-std
: Add an implementation forasync_std::process::Command
.backend-tokio
: Add an implementation fortokio::process::Command
.
Any number of backends may be enabled, depending on your needs.
Modules
std |
Structs
Child | Wrapper struct adding pty methods to the normal |
Size | Represents the size of the pty. |
Enums
Error | Error type for this crate |
Traits
Command | Adds methods to the existing |
Type Definitions
Result | Convenience wrapper for |