pub struct RoundInput<M> { /* private fields */ }Expand description
Simple implementation of MessagesStore that waits for all parties to send a message
Round is considered complete when the store received a message from every party. Note that the
store will ignore all the messages such as msg.sender == local_party_index.
Once round is complete, it outputs RoundMsgs.
§Example
let mut input = RoundInput::<&'static str>::broadcast(1, 3);
input.add_message(Incoming{
id: 0,
sender: 0,
msg_type: MessageType::Broadcast,
msg: "first party message",
})?;
input.add_message(Incoming{
id: 1,
sender: 2,
msg_type: MessageType::Broadcast,
msg: "third party message",
})?;
assert!(!input.wants_more());
let output = input.output().unwrap();
assert_eq!(output.clone().into_vec_without_me(), ["first party message", "third party message"]);
assert_eq!(
output.clone().into_vec_including_me("my msg"),
["first party message", "my msg", "third party message"]
);Implementations§
Source§impl<M> RoundInput<M>
impl<M> RoundInput<M>
Sourcepub fn new(i: PartyIndex, n: u16, msg_type: MessageType) -> Self
pub fn new(i: PartyIndex, n: u16, msg_type: MessageType) -> Self
Constructs new messages store
Takes index of local party i and amount of parties n
§Panics
Panics if n is less than 2 or i is not in the range [0; n).
Sourcepub fn broadcast(i: PartyIndex, n: u16) -> Self
pub fn broadcast(i: PartyIndex, n: u16) -> Self
Construct a new store for broadcast messages
The same as RoundInput::new(i, n, MessageType::Broadcast)
Sourcepub fn p2p(i: PartyIndex, n: u16) -> Self
pub fn p2p(i: PartyIndex, n: u16) -> Self
Construct a new store for p2p messages
The same as RoundInput::new(i, n, MessageType::P2P)
Trait Implementations§
Source§impl<M: Clone> Clone for RoundInput<M>
impl<M: Clone> Clone for RoundInput<M>
Source§fn clone(&self) -> RoundInput<M>
fn clone(&self) -> RoundInput<M>
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<M: Debug> Debug for RoundInput<M>
impl<M: Debug> Debug for RoundInput<M>
Source§impl<M> MessagesStore for RoundInput<M>where
M: 'static,
impl<M> MessagesStore for RoundInput<M>where
M: 'static,
Auto Trait Implementations§
impl<M> Freeze for RoundInput<M>
impl<M> RefUnwindSafe for RoundInput<M>where
M: RefUnwindSafe,
impl<M> Send for RoundInput<M>where
M: Send,
impl<M> Sync for RoundInput<M>where
M: Sync,
impl<M> Unpin for RoundInput<M>where
M: Unpin,
impl<M> UnwindSafe for RoundInput<M>where
M: 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