Skip to main content

OsSubprocessRuntime

Struct OsSubprocessRuntime 

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

Default implementation using std::process::Command.

Implementations§

Source§

impl OsSubprocessRuntime

Source

pub fn new() -> Self

Create a new OS subprocess runtime with no timeout.

Source

pub fn with_timeout(timeout_secs: u64) -> Self

Create a new OS subprocess runtime with the given wall-clock timeout.

If the subprocess does not complete within timeout_secs seconds the call returns a SubprocessError with a “timed out” message. The spawned process is left for the OS to reap — it is not explicitly killed.

§Stdin size caveat

Stdin data is written synchronously before the timeout poll loop begins. If the subprocess hangs before consuming stdin and the data exceeds the OS pipe buffer (~64 KiB on Linux), run_command will block in the write phase and the timeout will not fire. For typical Perl source files this is not a concern.

§Panics

Panics if timeout_secs is zero (a zero-second timeout would time out every command immediately and is almost certainly a caller bug).

Trait Implementations§

Source§

impl Default for OsSubprocessRuntime

Available on non-WebAssembly only.
Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl SubprocessRuntime for OsSubprocessRuntime

Available on non-WebAssembly only.
Source§

fn run_command( &self, program: &str, args: &[&str], stdin: Option<&[u8]>, ) -> Result<SubprocessOutput, SubprocessError>

Execute a command with the given arguments and optional stdin.

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