Skip to main content

Runner

Struct Runner 

Source
pub struct Runner { /* private fields */ }
Available on crate feature std only.
Expand description

An external runner that executes program text in a language runtime.

The pattern consumes text conforming to the runtime’s grammar and produces the execution result as text. This wrapper transports input and output as bytes; the external program parses and executes the input.

Each definition is passed as a --define=<key>=<value> argument; its meaning is determined by the runtime. Input and output use the buffering and stream-handling behavior described in crate::programs. For direct control over command configuration, use Executor instead.

Implementations§

Source§

impl Runner

Source

pub fn new( program: impl AsRef<OsStr>, input: Input, output: Output, options: RunnerOptions, ) -> Self

Configures a runner without starting it.

Adds one --define=<key>=<value> argument per entry in options.define, in BTreeMap key order, followed by options.other. Duplicate keys have already been collapsed by the map; ordered or repeated definitions can instead be supplied through options.other. Names must be nonempty and contain no =; values may be empty or contain =. This constructor does not validate them. The input and output values select stdin and stdout; stderr is captured for failure diagnostics.

Source

pub async fn execute(&mut self) -> RunnerResult

Sends the remaining input to a new child and returns captured stdout bytes.

§Errors

Returns an ExecutorError if spawning, copying input, or waiting fails, or if the runner exits unsuccessfully.

Trait Implementations§

Source§

impl Debug for Runner

Source§

fn fmt(&self, __derive_more_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Execute<Cursor<Vec<u8>>> for Runner

Source§

type Error = ExecutorError

The implementation-specific error returned directly by execution. Read more
Source§

fn execute<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = RunnerResult> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Executes the operation using its current input and configuration. Read more
Source§

impl Runner<Cursor<Vec<u8>>> for Runner

Auto Trait Implementations§

§

impl !RefUnwindSafe for Runner

§

impl !Sync for Runner

§

impl !UnwindSafe for Runner

§

impl Freeze for Runner

§

impl Send for Runner

§

impl Unpin for Runner

§

impl UnsafeUnpin for Runner

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> Instrument for T

Source§

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

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

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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

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