xrl 0.0.1

Xi Rpc Lib - Tokio based implementation of the RPC used in the Xi editor
Documentation
#![allow(unused_variables)]
extern crate env_logger;
extern crate futures;
extern crate tokio_core;
extern crate xrl;

use std::thread::sleep;
use std::time::Duration;

use futures::{future, Future};
use tokio_core::reactor::Core;

use xrl::{spawn, Client, Frontend, FrontendBuilder, ScrollTo, ServerResult, Style, Update};


struct TestFrontend;

impl Frontend for TestFrontend {
    fn update(&mut self, update: Update) -> ServerResult<()> {
        Box::new(future::ok(()))
    }
    fn scroll_to(&mut self, scroll_to: ScrollTo) -> ServerResult<()> {
        Box::new(future::ok(()))
    }
    fn set_style(&mut self, style: Style) -> ServerResult<()> {
        Box::new(future::ok(()))
    }
}

impl FrontendBuilder<TestFrontend> for TestFrontend {
    fn build(self, _client: Client) -> TestFrontend {
        self
    }
}

fn main() {
    env_logger::init().unwrap();
    let mut core = Core::new().unwrap();
    let handle = core.handle();
    let mut client = spawn("xi-core", TestFrontend {}, &handle);

    sleep(Duration::from_millis(1000));
    let new_view_future = client
        .new_view(None)
        .map(|view_name| println!("{:?}", view_name));
    core.run(new_view_future).unwrap();
}