pub struct Ladder {
pub declared: Vec<u32>,
pub derived: Vec<u32>,
pub slots_admitted: SlotsAdmitted,
}Expand description
PP-24 — the band ladder: declared, and what both servers actually admitted.
A c = 16 band against a subject that admitted 11 slots measured a queue,
not a server. So the bands that may carry numbers are derived from the
admissions rather than declared by the harness.
Fields§
§declared: Vec<u32>The bands the matrix declares.
derived: Vec<u32>{c ∈ declared : c ≤ min(slots_admitted)}.
slots_admitted: SlotsAdmittedWhat each lane reported.
Implementations§
Source§impl Ladder
impl Ladder
Sourcepub fn derive(declared: &[u32], slots_admitted: SlotsAdmitted) -> Self
pub fn derive(declared: &[u32], slots_admitted: SlotsAdmitted) -> Self
Derive the ladder from the declared bands and the two servers’ reports.
When neither lane reported a slot count the derived ladder is the
declared one — and the caller names the absence in unproduced_fields,
which ReceiptInput::render does. Silently narrowing the ladder on no
evidence would drop bands that ran perfectly well.
Sourcepub fn is_underived(&self) -> bool
pub fn is_underived(&self) -> bool
True when neither lane reported a slot count, so the ladder is the declared one on no evidence.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Ladder
impl<'de> Deserialize<'de> for Ladder
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Ladder
impl StructuralPartialEq for Ladder
Auto Trait Implementations§
impl Freeze for Ladder
impl RefUnwindSafe for Ladder
impl Send for Ladder
impl Sync for Ladder
impl Unpin for Ladder
impl UnsafeUnpin for Ladder
impl UnwindSafe for Ladder
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.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> ⓘ
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> ⓘ
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