diff --git a/src/section_config.rs b/src/section_config.rs index 0bee518e..12564580 100644 --- a/src/section_config.rs +++ b/src/section_config.rs @@ -61,22 +61,23 @@ impl SectionConfigData { Ok(()) } - pub fn lookup(&self, type_name: &str, id: &str) -> Result { - - let config = match self.sections.get(id) { + pub fn lookup_json(&self, type_name: &str, id: &str) -> Result { + match self.sections.get(id) { Some((section_type_name, config)) => { if type_name != section_type_name { bail!("got unexpected type '{}' for {} '{}'", section_type_name, type_name, id); } - config + Ok(config.clone()) } None => { bail!("no such {} '{}'", type_name, id); } - }; - - let data = T::deserialize(config.clone())?; + } + } + pub fn lookup(&self, type_name: &str, id: &str) -> Result { + let config = self.lookup_json(type_name, id)?; + let data = T::deserialize(config)?; Ok(data) }