diff --git a/src/renderer/renderer.rs b/src/renderer/renderer.rs index 88e2986..8fba149 100644 --- a/src/renderer/renderer.rs +++ b/src/renderer/renderer.rs @@ -139,30 +139,18 @@ mod tests { fn walk(&self, segment: &str) -> &dyn ContextElement { self.get(segment).unwrap() } - - fn val(&self) -> String { - "val".to_owned() - } } impl Walkable for &str { fn walk(&self, segment: &str) -> &dyn ContextElement { panic!("Tried to walk down a str"); } - - fn val(&self) -> String { - "val".to_owned() - } } impl Walkable for u32 { fn walk(&self, segment: &str) -> &dyn ContextElement { panic!("Tried to walk down a str"); } - - fn val(&self) -> String { - "val".to_owned() - } } fn do_the_walk<'a>( @@ -172,7 +160,7 @@ mod tests { let mut output = context; for elem in path.iter() { - output = context.walk(elem); + output = output.walk(elem); } output @@ -199,9 +187,9 @@ mod tests { .collect(); assert_eq!(do_the_walk(&context, &vec!["cat"]).render(), "kitty"); assert_eq!(do_the_walk(&number_context, &vec!["tiger"]).render(), "3"); - // assert_eq!( - // do_the_walk(&deep_context, &vec!["tiger", "food"]).render(), - // "people" - // ); + assert_eq!( + do_the_walk(&deep_context, &vec!["tiger", "food"]).render(), + "people" + ); } } diff --git a/src/renderer/walkable.rs b/src/renderer/walkable.rs index 22b7426..b861deb 100644 --- a/src/renderer/walkable.rs +++ b/src/renderer/walkable.rs @@ -1,9 +1,8 @@ use super::renderable::Renderable; +use std::fmt::Debug; -pub trait ContextElement: Walkable + Renderable {} +pub trait ContextElement: Walkable + Renderable + Debug {} pub trait Walkable { fn walk(&self, segment: &str) -> &dyn ContextElement; - - fn val(&self) -> String; }