auric_runtime/routing/
router.rs1use super::RouteDef;
2use std::sync::Arc;
3use web_sys::window;
4
5#[derive(Clone)]
6pub struct Router {
7 #[allow(unused)]
8 router: Arc<actix_router::Router<RouteDef>>,
9}
10
11impl Router {
12 pub fn new(route_defs: &[RouteDef]) -> Self {
13 let mut builder = actix_router::Router::build();
14 for route_def in route_defs.iter() {
15 builder.path(&route_def.path, route_def.clone());
16 }
17 let router = Arc::new(builder.finish());
18 Self { router }
19 }
20
21 pub fn init(&self) -> anyhow::Result<()> {
22 let _href = window()
24 .and_then(|win| win.location().href().ok())
25 .expect("Could not access window location");
26 web_sys::console::log_1(&"Initialized router".into());
33 Ok(())
34 }
35}