From efd103b84a6a1ad175b57616dc0d4808e060c71e Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Fri, 8 May 2020 22:34:58 -0400 Subject: [PATCH] Running into a lifetime issue --- src/renderer/parameters_context.rs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/renderer/parameters_context.rs b/src/renderer/parameters_context.rs index b4d75ef..5a9164d 100644 --- a/src/renderer/parameters_context.rs +++ b/src/renderer/parameters_context.rs @@ -1,6 +1,10 @@ use crate::parser::KVPair; -use crate::parser::RValue; +use crate::parser::{Filter, RValue}; use crate::renderer::context_element::ContextElement; +use crate::renderer::Loopable; +use crate::renderer::RenderError; +use crate::renderer::Renderable; +use crate::renderer::Walkable; use std::collections::HashMap; #[derive(Clone, Debug)] @@ -25,4 +29,26 @@ impl<'a> ParametersContext<'a> { } } -// impl<'a> ContextElement for ParametersContext<'a> {} +impl<'a> ContextElement for ParametersContext<'a> {} + +impl<'a> Renderable for ParametersContext<'a> { + fn render(&self, _filters: &Vec) -> Result { + Ok("[object Object]".to_owned()) + } +} + +impl<'a> Loopable for ParametersContext<'a> { + fn get_loop_elements(&self) -> Result, RenderError> { + Ok(vec![self]) + } +} + +impl<'a> Walkable for ParametersContext<'a> { + fn walk(&self, segment: &str) -> Result<&dyn ContextElement, RenderError> { + // TODO: Actually implement + Err(RenderError::CantWalk { + segment: segment.to_string(), + elem: self, + }) + } +}