Better error handling added to walkable
This commit is contained in:
@@ -139,24 +139,29 @@ mod tests {
|
||||
|
||||
impl<I: ContextElement> Walkable for HashMap<&str, I> {
|
||||
fn walk(&self, segment: &str) -> Result<&dyn ContextElement, RenderError> {
|
||||
Ok(self.get(segment).unwrap())
|
||||
// TODO: Handle error here better
|
||||
// self.get(segment).ok_or(RenderError::WontWalk {
|
||||
// segment: segment.to_string(),
|
||||
// elem: self,
|
||||
// })
|
||||
let child = self.get(segment).ok_or(RenderError::WontWalk {
|
||||
segment: segment.to_string(),
|
||||
elem: self,
|
||||
})?;
|
||||
Ok(child)
|
||||
}
|
||||
}
|
||||
|
||||
impl Walkable for &str {
|
||||
fn walk(&self, _segment: &str) -> Result<&dyn ContextElement, RenderError> {
|
||||
panic!("Tried to walk down a str");
|
||||
fn walk(&self, segment: &str) -> Result<&dyn ContextElement, RenderError> {
|
||||
Err(RenderError::CantWalk {
|
||||
segment: segment.to_string(),
|
||||
elem: self,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl Walkable for u32 {
|
||||
fn walk(&self, _segment: &str) -> Result<&dyn ContextElement, RenderError> {
|
||||
panic!("Tried to walk down a str");
|
||||
fn walk(&self, segment: &str) -> Result<&dyn ContextElement, RenderError> {
|
||||
Err(RenderError::CantWalk {
|
||||
segment: segment.to_string(),
|
||||
elem: self,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user