diff --git a/src/content/content_engine.rs b/src/content/content_engine.rs index 4ad02a7..f4efef2 100644 --- a/src/content/content_engine.rs +++ b/src/content/content_engine.rs @@ -61,12 +61,13 @@ where media_type: MediaType, ) -> Result; - fn get_internal(&self, route: &Route) -> Option<&ContentRepresentations>; - fn get(&self, route: &Route) -> Option<&ContentRepresentations>; fn handlebars_registry(&self) -> &Handlebars; } +pub trait InternalContentEngine { + fn get_internal(&self, route: &Route) -> Option<&ContentRepresentations>; +} /// A [`ContentEngine`](trait.ContentEngine.html) that serves files from a /// [`ContentDirectory`](struct.ContentDirectory.html). @@ -393,15 +394,21 @@ where self.content_registry.get(route) } - fn get_internal(&self, route: &Route) -> Option<&ContentRepresentations> { - self.content_registry.get_internal(route) - } - fn handlebars_registry(&self) -> &Handlebars { &self.handlebars_registry } } +impl<'engine, ServerInfo> InternalContentEngine + for FilesystemBasedContentEngine<'engine, ServerInfo> +where + ServerInfo: Clone + Serialize, +{ + fn get_internal(&self, route: &Route) -> Option<&ContentRepresentations> { + self.content_registry.get_internal(route) + } +} + #[cfg(test)] mod tests { use super::test_lib::*; diff --git a/src/content/handlebars_helpers/get.rs b/src/content/handlebars_helpers/get.rs index 0280ed8..e90f192 100644 --- a/src/content/handlebars_helpers/get.rs +++ b/src/content/handlebars_helpers/get.rs @@ -1,3 +1,4 @@ +use crate::content::content_engine::InternalContentEngine; use crate::content::*; use futures::executor; use futures::stream::TryStreamExt; @@ -29,7 +30,7 @@ where impl handlebars::HelperDef for GetHelper where ServerInfo: Clone + Serialize, - Engine: ContentEngine, + Engine: ContentEngine + InternalContentEngine, { fn call<'registry: 'context, 'context>( &self, diff --git a/src/content/test_lib.rs b/src/content/test_lib.rs index ac86b26..2ca087f 100644 --- a/src/content/test_lib.rs +++ b/src/content/test_lib.rs @@ -43,9 +43,6 @@ impl<'a> ContentEngine<()> for MockContentEngine<'a> { fn get(&self, _: &Route) -> Option<&ContentRepresentations> { None } - fn get_internal(&self, _: &Route) -> Option<&ContentRepresentations> { - None - } fn handlebars_registry(&self) -> &Handlebars { &self.0 }