//! [`ruchei::deal`] use async_net::TcpListener; use futures_util::{StreamExt, TryStreamExt}; use ruchei::{concurrent::ConcurrentExt, deal::keyed::DealerKeyedExt, poll_on_wake::PollOnWakeExt}; #[async_std::main] async fn main() { TcpListener::bind("127.0.0.1:8080") .await .unwrap() .incoming() .poll_on_wake() .filter_map(|r| async { r.ok() }) .map(async_tungstenite::accept_async) .fuse() .concurrent() .filter_map(|r| async { r.ok() }) .map(|s| (rand::random::(), s)) .deal_keyed(|_| {}) .try_for_each(|msg| { eprintln!("{msg:?}"); async { Ok(()) } }) .await .unwrap(); }