pub struct ControlProgram {
pub frame: Vec<CtrlStep>,
pub frames: usize,
pub epilogue: Vec<CtrlStep>,
pub tick_ns: f64,
}Expand description
A frame-based control program: frame repeats frames times, then epilogue runs once.
Fields§
§frame: Vec<CtrlStep>§frames: usize§epilogue: Vec<CtrlStep>§tick_ns: f64Wall-clock per frame in nanoseconds (the target’s settling budget).
Implementations§
Source§impl ControlProgram
impl ControlProgram
Sourcepub fn total_steps(&self) -> usize
pub fn total_steps(&self) -> usize
Total scheduled steps (frames × frame length + epilogue).
Sourcepub fn chopped(&self) -> ControlProgram
pub fn chopped(&self) -> ControlProgram
The chopped twin of this schedule: every frame runs TWICE around a ChopSwap, and
the digital side averages the pair. Purely a schedule transform — the dataflow, the
netlist, and the certificates are untouched.
Trait Implementations§
Source§impl Clone for ControlProgram
impl Clone for ControlProgram
Source§fn clone(&self) -> ControlProgram
fn clone(&self) -> ControlProgram
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ControlProgram
impl Debug for ControlProgram
Source§impl PartialEq for ControlProgram
impl PartialEq for ControlProgram
impl StructuralPartialEq for ControlProgram
Auto Trait Implementations§
impl Freeze for ControlProgram
impl RefUnwindSafe for ControlProgram
impl Send for ControlProgram
impl Sync for ControlProgram
impl Unpin for ControlProgram
impl UnsafeUnpin for ControlProgram
impl UnwindSafe for ControlProgram
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.