hello/
hello.rs

1extern crate backtalk;
2extern crate futures;
3
4use backtalk::*;
5use std::sync::Arc;
6
7fn main() {
8  let mut s = Server::new();
9  s.resource("/meow", |_req: Request| {
10    Error::forbidden("not allowed! sorry.")
11  });
12  let adapter = Arc::new(memory::MemoryAdapter::new());
13  let channel = Arc::new(memory::MemoryChannel::new());
14  s.resource("/hello2", move |req: Request| {
15    req
16      .and_then(|req| {
17        req.into_reply(JsonObject::new())
18      })
19  });
20  s.resource("/hello", move |req: Request| {
21    let adapter = adapter.clone();
22    let channel1 = channel.clone();
23    // let channel2 = channel.clone();
24    req
25      .and_then(move |req| {
26        match req.method().clone() {
27          Method::Action(_) => Error::forbidden("not allowed! sorry."),
28          Method::Listen => channel1.handle(req),
29          _ => adapter.handle(req),
30        }
31      })
32      // .and_then(move |reply| { util::send_from_reply(reply, channel2.deref()) })
33  });
34  s.listen("127.0.0.1:3000");
35}