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: BusIndex
The bus index specifying the bus to send the message over. All valid instantiations of
BusIndex
are safe.
count_weight: u32
Determines 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 copy 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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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