Skip to content

Commit

Permalink
feat(api): Make Renderable debuggable
Browse files Browse the repository at this point in the history
  • Loading branch information
epage committed Dec 16, 2017
1 parent 4783af3 commit 802b0af
Show file tree
Hide file tree
Showing 18 changed files with 25 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/interpreter/argument.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use value::Value;
use super::Context;
use super::variable::Variable;

#[derive(Debug, PartialEq)]
#[derive(Debug, Clone, PartialEq)]
pub enum Argument {
Var(Variable),
Val(Value),
Expand Down
2 changes: 1 addition & 1 deletion src/interpreter/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use super::Argument;
use super::{BoxedValueFilter, FilterValue};


#[derive(Clone)]
#[derive(Clone, Debug)]
pub enum Interrupt {
Continue,
Break,
Expand Down
4 changes: 2 additions & 2 deletions src/interpreter/output.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use super::Context;
use super::Renderable;
use super::Argument;

#[derive(Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq)]
pub struct FilterPrototype {
name: String,
arguments: Vec<Argument>,
Expand All @@ -20,7 +20,7 @@ impl FilterPrototype {
}
}

#[derive(Debug, PartialEq)]
#[derive(Clone, Debug, PartialEq)]
pub struct Output {
entry: Argument,
filters: Vec<FilterPrototype>,
Expand Down
4 changes: 3 additions & 1 deletion src/interpreter/renderable.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
use std::fmt::Debug;

use error::Result;

use super::Context;

/// Any object (tag/block) that can be rendered by liquid must implement this trait.
pub trait Renderable: Send + Sync {
pub trait Renderable: Send + Sync + Debug {
/// Renders the Renderable instance given a Liquid context.
/// The Result that is returned signals if there was an error rendering,
/// the Option<String> that is wrapped by the Result will be None if
Expand Down
1 change: 1 addition & 0 deletions src/interpreter/template.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use error::Result;
use super::Context;
use super::Renderable;

#[derive(Debug)]
pub struct Template {
pub elements: Vec<Box<Renderable>>,
}
Expand Down
1 change: 1 addition & 0 deletions src/interpreter/text.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use error::Result;
use super::Context;
use super::Renderable;

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Text {
text: String,
}
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ extern crate serde_yaml;

mod error;
mod filters;
mod interpreter;
mod parser;
mod tags;
mod template;
mod value;

pub mod syntax;
pub mod interpreter;

pub use parser::{ParserBuilder, Parser};
pub use template::Template;
Expand Down
1 change: 1 addition & 0 deletions src/syntax/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@ mod test_split_block {
use interpreter::Renderable;
use interpreter::Context;

#[derive(Debug)]
struct NullBlock;

impl Renderable for NullBlock {
Expand Down
1 change: 1 addition & 0 deletions src/tags/assign_tag.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use syntax::LiquidOptions;
use syntax::Token;
use syntax::{parse_output, expect};

#[derive(Clone, Debug)]
struct Assign {
dst: String,
src: Output,
Expand Down
1 change: 1 addition & 0 deletions src/tags/capture_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use syntax::Token;
use syntax::parse;
use value::Value;

#[derive(Debug)]
struct Capture {
id: String,
template: Template,
Expand Down
2 changes: 2 additions & 0 deletions src/tags/case_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ use syntax::Token;
use syntax::{parse, consume_value_token, split_block};
use value::Value;

#[derive(Debug)]
struct CaseOption {
args: Vec<Argument>,
template: Template,
Expand All @@ -31,6 +32,7 @@ impl CaseOption {
}
}

#[derive(Debug)]
struct Case {
target: Argument,
cases: Vec<CaseOption>,
Expand Down
1 change: 1 addition & 0 deletions src/tags/comment_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use syntax::Element;
use syntax::LiquidOptions;
use syntax::Token;

#[derive(Copy, Clone, Debug)]
struct Comment;

impl Renderable for Comment {
Expand Down
1 change: 1 addition & 0 deletions src/tags/cycle_tag.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use syntax::Token;
use syntax::LiquidOptions;
use syntax::{consume_value_token, value_token};

#[derive(Clone, Debug)]
struct Cycle {
name: String,
values: Vec<Argument>,
Expand Down
2 changes: 2 additions & 0 deletions src/tags/for_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ use syntax::Token;
use syntax::{parse, expect, split_block};
use value::Value;

#[derive(Clone, Debug)]
enum Range {
Array(String),
Counted(Argument, Argument),
}

#[derive(Debug)]
struct For {
var_name: String,
range: Range,
Expand Down
2 changes: 2 additions & 0 deletions src/tags/if_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ use syntax::LiquidOptions;
use syntax::Token;
use syntax::{parse, split_block, consume_value_token};

#[derive(Clone, Debug)]
struct Condition {
lh: Argument,
comparison: ComparisonOperator,
rh: Argument,
}

#[derive(Debug)]
struct Conditional {
condition: Condition,
mode: bool,
Expand Down
1 change: 1 addition & 0 deletions src/tags/include_tag.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use syntax::Token;
use syntax::parse;
use syntax::tokenize;

#[derive(Debug)]
struct Include {
partial: Template,
}
Expand Down
2 changes: 2 additions & 0 deletions src/tags/interrupt_tags.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use interpreter::{Context, Interrupt};
use syntax::LiquidOptions;
use syntax::Token;

#[derive(Copy, Clone, Debug)]
struct Break;

impl Renderable for Break {
Expand All @@ -26,6 +27,7 @@ pub fn break_tag(_tag_name: &str,
Ok(Box::new(Break))
}

#[derive(Copy, Clone, Debug)]
struct Continue;

impl Renderable for Continue {
Expand Down
1 change: 1 addition & 0 deletions src/tags/raw_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use syntax::Element;
use syntax::LiquidOptions;
use syntax::Token;

#[derive(Clone, Debug)]
struct RawT {
content: String,
}
Expand Down

0 comments on commit 802b0af

Please sign in to comment.