ilmen_http/http/router/structs/
route.rs1use crate::{HTTPResponse, ResponseBuilder, Verb};
2
3use super::request_handler::RequestHandler;
4
5#[derive(PartialEq, Eq,Debug)]
6pub struct Route{
7 pub verb : Verb,
8 pub route: String,
9 pub method : fn(&RequestHandler) -> HTTPResponse,
10 pub need_security: bool
11}
12
13impl Route {
14 pub fn new(verb: &Verb, route: &str, method: fn(&RequestHandler) -> HTTPResponse, need_security: bool) -> Route {
15 Route {
16 verb: *verb,
17 route: route.to_string(),
18 method,
19 need_security
20 }
21 }
22}
23
24impl Clone for Route {
25 fn clone(&self) -> Self {
26 Route { route: self.route.clone(), ..*self }
27 }
28}
29
30impl Default for Route {
31 fn default() -> Self {
32 Self { verb: Verb::GET, route: "/".to_string(), method: default_method, need_security: false }
33 }
34}
35
36fn default_method(_: &RequestHandler) -> HTTPResponse {
37 ResponseBuilder::new(200, Some("default".to_string())).build()
38}
39
40pub type Routes = Vec<Route>;