Struct changes_stream::ChangesStream [] [src]

pub struct ChangesStream { /* fields omitted */ }

A structure to generate a readable stream on which you can register handlers.

Internally, the ChangesStream struct holds 3 members:

Member Type Notes
db String A url pointing to the data you'd like to stream.
lp tokio_core::reactor::Core The event loop
handlers Vec<F> where F: Fn(&hyper::Chunk) A vector of handlers to be called on each Chunk from the Stream on Read

Methods

impl ChangesStream
[src]

Constructs a new ChangesStream struct

Takes a single argument, db, which represents the url of the data you wish to stream.

Every ChangesStream struct is initialized with an event loop (tokio_core::reactor::Core) and an empty vector of handlers. See above for more details.

For example, to create a new ChangesStream struct for the npmjs registry, you would write:

    let url = "https://replicate.npmjs.com/_changes".to_string();
    let mut changes = ChangesStream::new(url);

Registers a handler. A handler is simply a function you'd like to call on a chunk from the stream at the time the chunk is read.

.on() takes a single argument, a closure. The closure you pass should take a single hyper::Chunk as an argument.

For example, to write the data in a chunk to standard out, you would write:

   changes.on(|change| {
       io::stdout().write_all(&change).unwrap();
   });

Runs the ChangesStream struct's event loop, lp.

Call this after you have regsitered all handlers using on.

Takes no arguments.

For example:

   changes.run();