lib-ruby-parser-nodes 0.37.0

Ruby parser nodes data
Documentation
use crate::template::shards::{Condition, Helper, List, Loop, StringPart};

pub type Template = List<TemplatePart>;

#[derive(Debug, PartialEq)]
pub enum TemplatePart {
    StringPart(StringPart),
    GlobalHelper(Helper),
    GlobalCondition(Condition<Template>),
    NodesLoop(Loop<NodeTemplate>),
    MessagesLoop(Loop<MessageTemplate>),
}

pub type NodeTemplate = List<NodeTemplatePart>;

#[derive(Debug, PartialEq)]
pub enum NodeTemplatePart {
    StringPart(StringPart),
    Helper(Helper),
    Condition(Condition<NodeTemplate>),
    FieldsLoop(Loop<NodeFieldTemplate>),
}

pub type NodeFieldTemplate = List<NodeFieldTemplatePart>;

#[derive(Debug, PartialEq)]
pub enum NodeFieldTemplatePart {
    StringPart(StringPart),
    Helper(Helper),
    Condition(Condition<NodeFieldTemplate>),
}

pub type MessageTemplate = List<MessageTemplatePart>;

#[derive(Debug, PartialEq)]
pub enum MessageTemplatePart {
    StringPart(StringPart),
    Helper(Helper),
    Condition(Condition<MessageTemplate>),
    FieldsLoop(Loop<MessageFieldTemplate>),
}

pub type MessageFieldTemplate = List<MessageFieldTemplatePart>;

#[derive(Debug, PartialEq)]
pub enum MessageFieldTemplatePart {
    StringPart(StringPart),
    Helper(Helper),
    Condition(Condition<MessageFieldTemplate>),
}