#![allow(unused)] mod parser; use async_std::{ net::UdpSocket, sync::{Arc, RwLock}, task, }; use rst_core::Id; use std::{collections::BTreeMap, net::SocketAddr}; pub struct ServerEndpoint { socket: UdpSocket, bind: String, clients: RwLock>, } impl ServerEndpoint { pub async fn new(bind: &str) -> Arc { let socket = UdpSocket::bind(bind).await.unwrap(); Arc::new(Self { socket, bind: bind.into(), clients: Default::default(), }) } pub async fn listen(self: &Arc) { let mut buf = vec![0; 1024]; info!("Listening for connections on {}", self.bind); loop { let (_, peer) = self.socket.recv_from(&mut buf).await.unwrap(); } } } pub struct Client { addr: SocketAddr, }