use crate::{
HandshakeMode, HandshakeStrategy, PeerID, Scheduled, UserMsgPayload, handshake::HandshakeInput,
state::MsgPayload,
};
#[derive(Debug, Clone)]
pub enum Input<Msg: UserMsgPayload> {
InitHandshake {
with: PeerID,
mode: HandshakeMode,
strategy: HandshakeStrategy,
},
InitOpenOffer,
OpenOfferCreated(String),
Handshake { from: PeerID, event: HandshakeInput },
MessageReceived {
peer_from: PeerID,
data: MsgPayload<Msg>,
},
Send {
peer_to: PeerID,
data: MsgPayload<Msg>,
},
Broadcast { data: MsgPayload<Msg> },
PeerLeaving { peer: PeerID },
Leave,
TimerFired { kind: Scheduled },
}