1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
use std::marker::PhantomData;
use getset::Getters;
use crate::transport::{receiver::PacketReceiver, sender::PacketSender};
#[derive(Getters)]
pub struct Connection<Uid, Data, S, R>
where
Uid: PartialEq,
S: PacketSender<Data> + Clone,
R: PacketReceiver<Data, Uid>,
{
#[get = "pub"]
sender: S,
#[get = "pub"]
receiver: R,
_uid: PhantomData<Uid>,
_data: PhantomData<Data>,
}
impl<Uid, Data, S, R> Connection<Uid, Data, S, R>
where
Uid: PartialEq,
S: PacketSender<Data> + Clone,
R: PacketReceiver<Data, Uid>,
{
pub fn new(sender: S, receiver: R) -> Self {
Self {
sender,
receiver,
_uid: PhantomData,
_data: PhantomData,
}
}
}
|