pub struct Timeline { /* private fields */ }Expand description
The instants each clock of a multiclock assertion ticks at (16.13), over ONE
shared axis of positions (the simulation’s time steps, or the trace’s rows).
Position p is a tick of clock c when p is in c’s list.
Positions 0..real are the trace’s real steps. From real on, a word is the
constant ⊤/⊥ tail of TailWord, which is a letter at EVERY position, so
every position past real is a tick of every clock: the tail neither adds nor
removes obligations clock by clock, it simply continues the verdict word. A
clock with no list at all ticks at every position (the single-clock case, where
a timeline is not needed).
Implementations§
Source§impl Timeline
impl Timeline
Sourcepub fn new(real: u32, ticks: Vec<Vec<u32>>) -> Result<Self, TraceError>
pub fn new(real: u32, ticks: Vec<Vec<u32>>) -> Result<Self, TraceError>
ticks[c] is the sorted tick list of ClockId(c); every entry must be
below real.
Sourcepub fn from_rows(rows: &[&[bool]]) -> Self
pub fn from_rows(rows: &[&[bool]]) -> Self
One tick list per row of rows: step t is a tick of clock c when
rows[c][t]. The timeline is as long as the longest row.
Sourcepub fn truncated(&self, n: u32) -> Timeline
pub fn truncated(&self, n: u32) -> Timeline
The first n real steps: the timeline of a word cut to n letters, whose
later positions are the constant tail (a tick of every clock). A cut
longer than the trace is the trace.
Trait Implementations§
impl Eq for Timeline
impl StructuralPartialEq for Timeline
Auto Trait Implementations§
impl Freeze for Timeline
impl RefUnwindSafe for Timeline
impl Send for Timeline
impl Sync for Timeline
impl Unpin for Timeline
impl UnsafeUnpin for Timeline
impl UnwindSafe for Timeline
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.