pub struct Generator { /* private fields */ }Expand description
A single-lane generator that yields a fixed sequence of values on demand.
Models the yield-to-driver surface of generator control: each
Generator::next_step resumes the generator and hands back the next value.
§Examples
use sim_kernel::{Ref, Symbol};
use sim_lib_control::{Generator, GeneratorStep};
let one = Ref::Symbol(Symbol::new("one"));
let mut generator = Generator::new(vec![one.clone()]);
assert_eq!(generator.next_step(), GeneratorStep::Yielded(one));
assert_eq!(generator.next_step(), GeneratorStep::Exhausted);
assert!(generator.is_exhausted());Implementations§
Source§impl Generator
impl Generator
Sourcepub fn next_step(&mut self) -> GeneratorStep
pub fn next_step(&mut self) -> GeneratorStep
Advances the generator, returning the next GeneratorStep::Yielded
value or GeneratorStep::Exhausted once drained.
Sourcepub fn is_exhausted(&self) -> bool
pub fn is_exhausted(&self) -> bool
Returns whether every value has been yielded.
Trait Implementations§
impl Eq for Generator
impl StructuralPartialEq for Generator
Auto Trait Implementations§
impl Freeze for Generator
impl RefUnwindSafe for Generator
impl Send for Generator
impl Sync for Generator
impl Unpin for Generator
impl UnsafeUnpin for Generator
impl UnwindSafe for Generator
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