Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use futures::{Sink, Stream, future, Future};
- use std::io;
- pub enum Request {
- Discover,
- }
- pub enum Response {
- Discover,
- }
- pub struct Coordinator<T: Sink + Stream> {
- transport: T,
- }
- impl<T> Coordinator<T>
- where
- T: Sink<SinkItem = Request, SinkError = io::Error> + Stream<Item = Response, Error=io::Error>,
- {
- pub fn new(transport: T) -> Coordinator<T> {
- Coordinator {
- transport,
- }
- }
- pub fn discover(&self) -> Box<Future<Item = (), Error = io::Error>> {
- let request = Request::Discover;
- let done = self.transport.send(request).and_then(
- |transport| {
- transport.for_each(|response| {
- // do something
- future::ok(())
- })
- }
- );
- Box::new(done)
- }
- }
- fn main() {
- let str1 = "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUREOUJINzJ1djFEYit2Qmplemxadkh2ZTdabUhzQklHeWFyeXRidjNxOXFvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFTXd6MXVVT09IQm9YTE0vN0lwclplMmt3cVorMGMwamR2L3ZmeURoS3diVFF2azZWL1pBNApnOXozRlJudXVMdmJKa3l6enl6V2hlT1VxbythQW93UFFnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=";
- let str2 = "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUVhdVY0YWt2NjkzaEwwSjFjRkw3MU5UYXdDb0FmSmFzUUpHdk9jN0FkV25vQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFMlJlYVA3VmhUWmtXN0tmYlAxdnBMdEVrZ21saklsdHh3ZFYvUlA2WDFyU3ZSYTBkN1RpdwphczRmSHRZYm8xMHNiMzZSS0tQU2VaZDVIN25XaTdqb2tBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=";
- assert_ne!(str1, str2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement