#[derive(Default)] pub struct RoutableWidgetState { routes: Vec, } impl RoutableWidgetState { pub fn route_to(&mut self, route: R) { self.routes.push(route); } pub fn clear(&mut self) { self.routes.clear(); } pub fn go_back(&mut self) { self.routes.pop(); } pub fn top(&self) -> Option { self.routes.last().cloned() } pub fn get_routes(&self) -> Vec { self.routes.clone() } }