[RELEASE] Version 0.0.7 #9
3 changed files with 17 additions and 1 deletions
7
src/controller.rs
Normal file
7
src/controller.rs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
use tiny_http::Request;
|
||||||
|
|
||||||
|
pub trait Controller {
|
||||||
|
fn register_routes(&self) -> HashMap<String, fn(Request)>;
|
||||||
|
}
|
|
@ -1,4 +1,5 @@
|
||||||
pub mod router;
|
pub mod router;
|
||||||
|
pub mod controller;
|
||||||
pub mod entities;
|
pub mod entities;
|
||||||
pub mod utilities;
|
pub mod utilities;
|
||||||
pub mod template;
|
pub mod template;
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::collections::HashMap;
|
||||||
|
|
||||||
use tiny_http::Request;
|
use tiny_http::Request;
|
||||||
|
|
||||||
use crate::{entities::request::Url, utilities::responses::respond_not_found};
|
use crate::{controller::Controller, entities::request::Url, utilities::responses::respond_not_found};
|
||||||
|
|
||||||
|
|
||||||
pub struct Router {
|
pub struct Router {
|
||||||
|
@ -23,6 +23,14 @@ impl Router {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn add_controller(&mut self, controller: impl Controller) {
|
||||||
|
let new_routes = controller.register_routes();
|
||||||
|
let mut final_routes = self.routes.clone();
|
||||||
|
final_routes.extend(new_routes);
|
||||||
|
|
||||||
|
self.routes = final_routes;
|
||||||
|
}
|
||||||
|
|
||||||
pub fn add_route(&mut self, route: &str, route_function: fn(Request)) {
|
pub fn add_route(&mut self, route: &str, route_function: fn(Request)) {
|
||||||
self.routes.insert(route.to_string(), route_function);
|
self.routes.insert(route.to_string(), route_function);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue