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: TokenStream
Code which runs once outside the subgraph to set up any external stuff like state API stuff, external chanels, network connections, etc.
write_iterator: TokenStream
Iterator (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: TokenStream
Code 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