diff options
Diffstat (limited to 'src/transport/connection.rs')
| -rw-r--r-- | src/transport/connection.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/transport/connection.rs b/src/transport/connection.rs new file mode 100644 index 0000000..34366a2 --- /dev/null +++ b/src/transport/connection.rs @@ -0,0 +1,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, + } + } +} |
