diff options
| author | Fuwn <[email protected]> | 2021-03-25 22:20:21 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2021-03-25 22:20:21 +0000 |
| commit | 5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc (patch) | |
| tree | f39b7bccc486298b1b7f4945cad37b4839817b73 /src/server/peer.rs | |
| parent | feature: Byte utilities (diff) | |
| download | whirl-5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc.tar.xz whirl-5fc28bfb2851441893ef2ad5f72e0feb8a0a22cc.zip | |
major: Publish work-in-progress
Diffstat (limited to 'src/server/peer.rs')
| -rw-r--r-- | src/server/peer.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/server/peer.rs b/src/server/peer.rs new file mode 100644 index 0000000..e92a3db --- /dev/null +++ b/src/server/peer.rs @@ -0,0 +1,26 @@ +use tokio_util::codec::{Framed, BytesCodec}; +use tokio::net::TcpStream; +use crate::server::Rx; +use std::sync::Arc; +use tokio::sync::Mutex; +use crate::server::shared::Shared; +use tokio::sync::mpsc; + +pub struct Peer { + pub bytes: Framed<TcpStream, BytesCodec>, + // pub(crate) rx: Rx, + pub rx: Rx, +} +impl Peer { + pub async fn new( + state: Arc<Mutex<Shared>>, + bytes: Framed<TcpStream, BytesCodec>, + username: String, + ) -> std::io::Result<Peer> { + // let address = bytes.get_ref().peer_addr()?; + let (tx, rx) = mpsc::unbounded_channel(); + // state.lock().await.peers.insert(address, tx); + state.lock().await.peers.insert(username, tx); + Ok(Peer { bytes, rx }) + } +} |