Struct dfir_lang::graph::ops::OperatorWriteOutput   
source · #[non_exhaustive]pub struct OperatorWriteOutput {
    pub write_prologue: TokenStream,
    pub write_iterator: TokenStream,
    pub write_iterator_after: TokenStream,
}Expand description
The code generated and returned by a OperatorConstraints::write_fn.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional 
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.write_prologue: TokenStreamCode which runs once outside the subgraph to set up any external stuff like state API stuff, external chanels, network connections, etc.
write_iterator: TokenStreamIterator (or pusherator) code inside the subgraphs. The code for each operator is emitted in order.
Emitted code should assign to [WriteContextArgs.ident] and use
[WriteIteratorArgs.inputs] (pull iterators) or
[WriteIteratorArgs.outputs] (pusherators).
write_iterator_after: TokenStreamCode which runs after iterators have been run. Mainly for flushing IO.
Trait Implementations§
source§impl Default for OperatorWriteOutput
 
impl Default for OperatorWriteOutput
source§fn default() -> OperatorWriteOutput
 
fn default() -> OperatorWriteOutput
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for OperatorWriteOutput
impl RefUnwindSafe for OperatorWriteOutput
impl !Send for OperatorWriteOutput
impl !Sync for OperatorWriteOutput
impl Unpin for OperatorWriteOutput
impl UnwindSafe for OperatorWriteOutput
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
source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more