tide 0.0.5

WIP modular web framework
Documentation
#![feature(async_await, futures_api)]
extern crate basic_cookies;

use basic_cookies::Cookie;
use std::collections::HashMap;
use tide::{Compute, Computed, Request};

#[derive(Clone, Debug)]
struct Cookies {
    content: HashMap<String, String>,
}

impl Compute for Cookies {
    fn compute_fresh(req: &mut Request) -> Self {
        let content = if let Some(raw_cookies) = req.headers().get("Cookie") {
            Cookie::parse(raw_cookies.to_str().unwrap())
                .unwrap()
                .iter()
                .map(|c| (c.get_name().into(), c.get_value().into()))
                .collect()
        } else {
            HashMap::new()
        };

        Cookies { content }
    }
}

async fn hello_cookies(Computed(cookies): Computed<Cookies>) -> String {
    format!("hello cookies: {:?}", cookies)
}

fn main() {
    let mut app = tide::App::new(());
    app.at("/").get(hello_cookies);

    app.serve();
}