extern crate webframework as wfw; extern crate failure; extern crate lazy_static; extern crate regex; use crate::wfw::prelude::*; #[controller] fn handle404(req: &Request) -> WebResponse { Ok(Response::from_string(format!("Could not find path {}", req.uri().path())) .with_status(StatusCode::NOT_FOUND)) } #[controller] fn root() -> WebResponse { Ok(Response::from_string("Hello World!")) } #[controller] fn about() -> WebResponse { Ok(Response::from_string("About Webframework")) } #[controller] fn create_task() -> WebResponse { Ok(Response::from_string("You can create a task here")) } #[controller] fn new_task() -> WebResponse { Ok(Response::from_string("You can find a new task here")) } #[controller] fn tasks() -> WebResponse { Ok(Response::from_string("List of tasks!")) } #[controller] fn tasks_json() -> WebResponse { Ok(Response::from_string("{msg: \"List of tasks\"}")) } #[controller(params = "test")] fn dynamic_path(test: String) -> WebResponse { Ok(Response::from_string(format!("Dynamic segment was: {}", test))) } routing! { TaskRouter => { POST "/create" => create_task; GET "/new" => new_task; GET "/" => { html => tasks; json => tasks_json; }; } } routing! { RootRouter => { delegate "/tasks" => TaskRouter; GET "/about" => about; GET "/:test" => dynamic_path; GET "/" => root; >> NotFound => handle404; } } fn main() -> Result<(), failure::Error> { let server = wfw::server::load(); let map = RootRouter.router_map(); println!("{:#?}", map); server.handle_with(RootRouter) }