Struct conch_runtime::eval::EvalRedirectOrVarAssig [−][src]
#[must_use = "futures do nothing unless polled"]pub struct EvalRedirectOrVarAssig<R, V, W, I, E: ?Sized, RR = RedirectRestorer<E>> where
R: RedirectEval<E>,
V: Hash + Eq,
W: WordEval<E>, { /* fields omitted */ }
: does not properly handle references to earlier assignments, use EvalRedirectOrVarAssig2
instead
A future which will evaluate a series of redirections and variable assignments.
All redirections will be applied to the environment. On successful completion,
a RedirectRestorer
will be returned which allows the caller to reverse the
changes from applying these redirections. On error, the redirections will
be automatically restored.
In addition, all evaluated variable names and values to be assigned will be returned on successful evaluation. These will not be applied to the environment at any point as that is left up to the caller.
Trait Implementations
impl<R, V, W, I, E: ?Sized, RR> Debug for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Debug,
R: RedirectEval<E>,
R::EvalFuture: Debug,
V: Hash + Eq + Debug,
W: WordEval<E>,
W::EvalFuture: Debug,
W::EvalResult: Debug,
RR: Debug,
[src]
impl<R, V, W, I, E: ?Sized, RR> Debug for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Debug,
R: RedirectEval<E>,
R::EvalFuture: Debug,
V: Hash + Eq + Debug,
W: WordEval<E>,
W::EvalFuture: Debug,
W::EvalResult: Debug,
RR: Debug,
fn fmt(&self, fmt: &mut Formatter) -> Result
[src]
fn fmt(&self, fmt: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<R, V, W, I, E: ?Sized, RR> EnvFuture<E> for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Iterator<Item = RedirectOrVarAssig<R, V, W>>,
R: RedirectEval<E, Handle = E::FileHandle>,
R::Error: From<RedirectionError>,
V: Hash + Eq,
W: WordEval<E>,
E: AsyncIoEnvironment + FileDescEnvironment + VariableEnvironment,
E::FileHandle: From<FileDesc> + Borrow<FileDesc>,
E::VarName: Borrow<String>,
E::Var: Borrow<String>,
RR: RedirectEnvRestorer<E>,
[src]
impl<R, V, W, I, E: ?Sized, RR> EnvFuture<E> for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Iterator<Item = RedirectOrVarAssig<R, V, W>>,
R: RedirectEval<E, Handle = E::FileHandle>,
R::Error: From<RedirectionError>,
V: Hash + Eq,
W: WordEval<E>,
E: AsyncIoEnvironment + FileDescEnvironment + VariableEnvironment,
E::FileHandle: From<FileDesc> + Borrow<FileDesc>,
E::VarName: Borrow<String>,
E::Var: Borrow<String>,
RR: RedirectEnvRestorer<E>,
type Item = (RR, HashMap<V, W::EvalResult>)
The type of value that this future will resolved with if it is successful. Read more
type Error = EvalRedirectOrVarAssigError<R::Error, W::Error>
The type of error that this future will resolve with if it fails in a normal fashion. Read more
fn poll(&mut self, env: &mut E) -> Poll<Self::Item, Self::Error>
[src]
fn poll(&mut self, env: &mut E) -> Poll<Self::Item, Self::Error>
Behaves identical to Future::poll
when polled with a provided environment. Read more
fn cancel(&mut self, env: &mut E)
[src]
fn cancel(&mut self, env: &mut E)
Cancel a future and consider it as completed, thus giving it a chance to run any clean up as if it had resolved on its own. Read more
fn pin_env(self, env: E) -> Pinned<E, Self> where
E: Sized,
Self: Sized,
[src]
fn pin_env(self, env: E) -> Pinned<E, Self> where
E: Sized,
Self: Sized,
Pin an environment to this future, allowing the resulting future to be polled from anywhere without needing the caller to specify an environment. Read more
fn fuse(self) -> Fuse<Self> where
Self: Sized,
[src]
fn fuse(self) -> Fuse<Self> where
Self: Sized,
Fuse a future such that poll
and cancel
will never again be called once it has completed. Read more
fn boxed_result<'a>(self) -> BoxedResult<'a, Self> where
Self: Sized,
Self::Item: 'a + Future,
[src]
fn boxed_result<'a>(self) -> BoxedResult<'a, Self> where
Self: Sized,
Self::Item: 'a + Future,
Converts the resulting future into a boxed trait object. Read more
Auto Trait Implementations
impl<R, V, W, I, E: ?Sized, RR> Send for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Send,
RR: Send,
V: Send,
<R as RedirectEval<E>>::EvalFuture: Send,
<W as WordEval<E>>::EvalFuture: Send,
<W as WordEval<E>>::EvalResult: Send,
impl<R, V, W, I, E: ?Sized, RR> Send for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Send,
RR: Send,
V: Send,
<R as RedirectEval<E>>::EvalFuture: Send,
<W as WordEval<E>>::EvalFuture: Send,
<W as WordEval<E>>::EvalResult: Send,
impl<R, V, W, I, E: ?Sized, RR> Sync for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Sync,
RR: Sync,
V: Sync,
<R as RedirectEval<E>>::EvalFuture: Sync,
<W as WordEval<E>>::EvalFuture: Sync,
<W as WordEval<E>>::EvalResult: Sync,
impl<R, V, W, I, E: ?Sized, RR> Sync for EvalRedirectOrVarAssig<R, V, W, I, E, RR> where
I: Sync,
RR: Sync,
V: Sync,
<R as RedirectEval<E>>::EvalFuture: Sync,
<W as WordEval<E>>::EvalFuture: Sync,
<W as WordEval<E>>::EvalResult: Sync,