diff --git a/src/application.rs b/src/application.rs index cf58cc971..80efbda3d 100644 --- a/src/application.rs +++ b/src/application.rs @@ -251,6 +251,23 @@ impl App where S: 'static { self } + pub fn named_resource(mut self, name: &str, path: &str, f: F) -> App + where F: FnOnce(&mut ResourceHandler) + 'static + { + { + let parts = self.parts.as_mut().expect("Use after finish"); + + // add resource + let mut resource = ResourceHandler::default(); + resource.name(name); + f(&mut resource); + + let pattern = Resource::new(resource.get_name(), path); + parts.resources.push((pattern, Some(resource))); + } + self + } + /// Default resource is used if no matched route could be found. pub fn default_resource(mut self, f: F) -> App where F: FnOnce(&mut ResourceHandler) + 'static