[−][src]Crate tokio_interval_buffer
Provides an IntervalBuffer
that can be used to buffer a stream and emit the values at a regular interval.
This is useful for when you receive streaming data but want to parse it in bulk.
extern crate irc; extern crate failure; extern crate tokio_interval_buffer; extern crate futures; extern crate tokio; use irc::client::prelude::*; use tokio_interval_buffer::IntervalBuffer; fn main() { tokio::run(futures::future::lazy(|| { let client = IrcClient::from_config(Config { nickname: Some(String::from("...")), server: Some(String::from("...")), channels: Some(vec![String::from("...")]), ..Default::default() }) .expect("Could not create an irc client"); // Take the IRC stream and process all the messages every 10 seconds let buffered_receiver = IntervalBuffer::<_, _, failure::Error>::new( client .stream() .map_err(|e| failure::format_err!("Client stream error: {:?}", e)), std::time::Duration::from_secs(10), ); buffered_receiver .for_each(|b| { println!("Buffer: {:?}", b); Ok(()) }) .map_err(|e| { println!("Buffered receiver error: {:?}", e); }) })); }
Structs
IntervalBuffer | This buffer takes a stream and an interval, and will emit a Vec<Stream::Item> every interval. |
Traits
Insertable | A generic component used for the container for the IntervalBuffer.
This can be implemented for any type, and is only implemented for Vec |