pub struct Service {
pub bus_id: &'static str,
pub kind: BusKind,
pub slots: Vec<ServiceSlot>,
pub clock_waiver: Option<&'static str>,
}Expand description
Bus key schema declared once by the serving chiplet; both endpoints derive their spec from it.
Fields§
§bus_id: &'static str§kind: BusKind§slots: Vec<ServiceSlot>§clock_waiver: Option<&'static str>Per-row uniqueness argued by a body constraint rather than a clock slot.
Implementations§
Source§impl Service
impl Service
pub fn num_values(&self) -> usize
Sourcepub fn clock_columns(&self) -> usize
pub fn clock_columns(&self) -> usize
Committed columns a responder must supply for the schema’s clock slot.
Sourcepub fn request(
&self,
values: &[usize],
selector: usize,
) -> Result<PermutationCheckSpec>
pub fn request( &self, values: &[usize], selector: usize, ) -> Result<PermutationCheckSpec>
Requester endpoint: values bind the Value slots in
order; a clock slot folds the requester’s own row index.
Sourcepub fn request_phased(
&self,
values: &[usize],
phase_col: usize,
selector: usize,
) -> Result<PermutationCheckSpec>
pub fn request_phased( &self, values: &[usize], phase_col: usize, selector: usize, ) -> Result<PermutationCheckSpec>
Requester spec whose clock replaces the row index’s
top byte with phase_col, leaving 8 · (num_bytes - 1)
row-index bits. Unchecked: a phase another requester
on this bus repeats annihilates both emits.
Trait Implementations§
impl Eq for Service
impl StructuralPartialEq for Service
Auto Trait Implementations§
impl Freeze for Service
impl RefUnwindSafe for Service
impl Send for Service
impl Sync for Service
impl Unpin for Service
impl UnsafeUnpin for Service
impl UnwindSafe for Service
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,
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
Compare self to
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> ⓘ
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