commonware_p2p/authenticated/lookup/actors/spawner/
ingress.rs1use crate::authenticated::{lookup::actors::tracker::Reservation, Mailbox};
2use commonware_cryptography::PublicKey;
3use commonware_runtime::{Sink, Stream};
4use commonware_stream::{Receiver, Sender};
5
6pub enum Message<Si: Sink, St: Stream, P: PublicKey> {
8 Spawn {
10 peer: P,
12 connection: (Sender<Si>, Receiver<St>),
14 reservation: Reservation<P>,
16 },
17}
18
19impl<Si: Sink, St: Stream, P: PublicKey> Mailbox<Message<Si, St, P>> {
20 pub async fn spawn(
22 &mut self,
23 connection: (Sender<Si>, Receiver<St>),
24 reservation: Reservation<P>,
25 ) {
26 self.send(Message::Spawn {
27 peer: reservation.metadata().public_key().clone(),
28 connection,
29 reservation,
30 })
31 .await
32 .unwrap();
33 }
34}