Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate futures;
- extern crate tokio;
- use futures::channel::mpsc::Receiver;
- use std::collections::HashMap;
- use std::io::BufReader;
- use std::sync::{Arc, RwLock};
- use tokio::net::TcpStream;
- use tokio::prelude::future::{loop_fn, Loop};
- fn example() {
- let clients: Arc<RwLock<HashMap<String, TcpStream>>> = Arc::new(RwLock::new(HashMap::new()));
- let clients_iter_combo = clients;
- let clients_iter_combo = (
- clients_iter_combo,
- clients_iter_combo.read().unwrap().iter(),
- );
- let broadcast = loop_fn(clients_iter_combo, |(clients, mut clients_iter)| {
- let (id, client) = match clients_iter.next() {
- Some(item) => item,
- None => return Ok(Loop::Break(())),
- };
- Ok(Loop::Continue((clients, clients_iter)))
- });
- tokio::spawn(broadcast);
- }
- fn main() {}
Add Comment
Please, Sign In to add comment