pub struct SpawnOptionsBuilder { /* private fields */ }Expand description
Builder for SpawnOptions.
Implementations§
Source§impl SpawnOptionsBuilder
impl SpawnOptionsBuilder
Sourcepub fn new(argv: Vec<String>, backend: SpawnBackend) -> Self
pub fn new(argv: Vec<String>, backend: SpawnBackend) -> Self
Create a new builder with the specified argument vector.
Sourcepub fn stdin(self, data: impl Into<Box<[u8]>>) -> Self
pub fn stdin(self, data: impl Into<Box<[u8]>>) -> Self
Provide data to be written to the child’s stdin.
Sourcepub fn capture_stdout(self) -> Self
pub fn capture_stdout(self) -> Self
Enable stdout capture.
Examples found in repository?
examples/spawn_ls.rs (line 10)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 println!("Spawning '/bin/ls -l'...");
5
6 let output = SpawnOptions::builder(
7 vec!["/bin/ls".to_string(), "-l".to_string()],
8 SpawnBackend::PosixSpawn,
9 )
10 .capture_stdout()
11 .timeout_ms(5000)
12 .build()?
13 .run()?;
14
15 println!("Exit status: {:?}", output.status);
16 println!("Output length: {} bytes", output.stdout.len());
17 println!("--- STDOUT ---");
18 println!("{}", String::from_utf8_lossy(&output.stdout));
19 println!("--------------");
20
21 Ok(())
22}Sourcepub fn capture_stderr(self) -> Self
pub fn capture_stderr(self) -> Self
Enable stderr capture.
Sourcepub fn wait(self, wait: bool) -> Self
pub fn wait(self, wait: bool) -> Self
Set whether to wait for the process to terminate (default: true).
Sourcepub fn pgroup(self, pgroup: ProcessGroup) -> Self
pub fn pgroup(self, pgroup: ProcessGroup) -> Self
Set process group and isolation policy.
Sourcepub fn max_output(self, max: usize) -> Self
pub fn max_output(self, max: usize) -> Self
Set the combined stdout+stderr output buffer size (default: 1MB).
If captured output exceeds this limit, spawn drains the child pipes to
completion and returns EOVERFLOW.
Sourcepub fn timeout_ms(self, ms: u32) -> Self
pub fn timeout_ms(self, ms: u32) -> Self
Set the execution timeout in milliseconds.
Examples found in repository?
examples/spawn_ls.rs (line 11)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 println!("Spawning '/bin/ls -l'...");
5
6 let output = SpawnOptions::builder(
7 vec!["/bin/ls".to_string(), "-l".to_string()],
8 SpawnBackend::PosixSpawn,
9 )
10 .capture_stdout()
11 .timeout_ms(5000)
12 .build()?
13 .run()?;
14
15 println!("Exit status: {:?}", output.status);
16 println!("Output length: {} bytes", output.stdout.len());
17 println!("--- STDOUT ---");
18 println!("{}", String::from_utf8_lossy(&output.stdout));
19 println!("--------------");
20
21 Ok(())
22}Sourcepub fn kill_grace_ms(self, ms: u32) -> Self
pub fn kill_grace_ms(self, ms: u32) -> Self
Set the grace period before SIGKILL (default: 2s).
Sourcepub fn cancel(self, policy: CancelPolicy) -> Self
pub fn cancel(self, policy: CancelPolicy) -> Self
Set the cancellation policy (default: Kill).
Sourcepub fn fd_policy(self, policy: SpawnFdPolicy) -> Self
pub fn fd_policy(self, policy: SpawnFdPolicy) -> Self
Set the child file-descriptor inheritance policy.
Sourcepub fn early_exit(self, callback: fn(&[u8]) -> bool) -> Self
pub fn early_exit(self, callback: fn(&[u8]) -> bool) -> Self
Set an early exit callback.
Sourcepub fn build(self) -> Result<SpawnOptions, CoreError>
pub fn build(self) -> Result<SpawnOptions, CoreError>
Build the spawn options.
Examples found in repository?
examples/spawn_ls.rs (line 12)
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 println!("Spawning '/bin/ls -l'...");
5
6 let output = SpawnOptions::builder(
7 vec!["/bin/ls".to_string(), "-l".to_string()],
8 SpawnBackend::PosixSpawn,
9 )
10 .capture_stdout()
11 .timeout_ms(5000)
12 .build()?
13 .run()?;
14
15 println!("Exit status: {:?}", output.status);
16 println!("Output length: {} bytes", output.stdout.len());
17 println!("--- STDOUT ---");
18 println!("{}", String::from_utf8_lossy(&output.stdout));
19 println!("--------------");
20
21 Ok(())
22}Trait Implementations§
Source§impl Clone for SpawnOptionsBuilder
impl Clone for SpawnOptionsBuilder
Source§fn clone(&self) -> SpawnOptionsBuilder
fn clone(&self) -> SpawnOptionsBuilder
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SpawnOptionsBuilder
impl RefUnwindSafe for SpawnOptionsBuilder
impl Send for SpawnOptionsBuilder
impl Sync for SpawnOptionsBuilder
impl Unpin for SpawnOptionsBuilder
impl UnsafeUnpin for SpawnOptionsBuilder
impl UnwindSafe for SpawnOptionsBuilder
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
Mutably borrows from an owned value. Read more