pub struct Interaction<Expr> {
pub message: Vec<Expr>,
pub count: Expr,
pub bus_index: BusIndex,
pub count_weight: u32,
}Fields§
§message: Vec<Expr>§count: Expr§bus_index: BusIndexThe bus index specifying the bus to send the message over. All valid instantiations of
BusIndex are safe.
count_weight: u32Determines the contribution of each interaction message to a linear constraint on the trace heights in the verifier.
For each bus index and trace, count_weight values are summed per interaction on that
bus index and multiplied by the trace height. The total sum over all traces is constrained
by the verifier to not overflow the field characteristic ( p ).
This is used to impose sufficient conditions for bus constraint soundness and setting a proper value depends on the bus and the constraint it imposes.
Trait Implementations§
Source§impl<Expr: Clone> Clone for Interaction<Expr>
impl<Expr: Clone> Clone for Interaction<Expr>
Source§fn clone(&self) -> Interaction<Expr>
fn clone(&self) -> Interaction<Expr>
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<Expr: Debug> Debug for Interaction<Expr>
impl<Expr: Debug> Debug for Interaction<Expr>
Source§impl<'de, Expr> Deserialize<'de> for Interaction<Expr>where
Expr: Deserialize<'de>,
impl<'de, Expr> Deserialize<'de> for Interaction<Expr>where
Expr: Deserialize<'de>,
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<Expr: PartialEq> PartialEq for Interaction<Expr>
impl<Expr: PartialEq> PartialEq for Interaction<Expr>
Source§impl<Expr> Serialize for Interaction<Expr>where
Expr: Serialize,
impl<Expr> Serialize for Interaction<Expr>where
Expr: Serialize,
impl<Expr: Eq> Eq for Interaction<Expr>
impl<Expr> StructuralPartialEq for Interaction<Expr>
Auto Trait Implementations§
impl<Expr> Freeze for Interaction<Expr>where
Expr: Freeze,
impl<Expr> RefUnwindSafe for Interaction<Expr>where
Expr: RefUnwindSafe,
impl<Expr> Send for Interaction<Expr>where
Expr: Send,
impl<Expr> Sync for Interaction<Expr>where
Expr: Sync,
impl<Expr> Unpin for Interaction<Expr>where
Expr: Unpin,
impl<Expr> UnwindSafe for Interaction<Expr>where
Expr: UnwindSafe,
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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