shadowplay 0.16.3

Utility for checking puppet syntax, a puppet manifest linter, a pretty printer, and a utility for exploring the Hiera.
Documentation
use serde::Serialize;

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Escaped<EXTRA> {
    pub data: char,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Literal<EXTRA> {
    pub data: String,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Expression<EXTRA> {
    pub data: crate::puppet_lang::expression::Expression<EXTRA>,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum StringFragment<EXTRA> {
    Literal(Literal<EXTRA>),
    EscapedUTF(Escaped<EXTRA>),
    Escaped(Escaped<EXTRA>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum DoubleQuotedFragment<EXTRA> {
    StringFragment(StringFragment<EXTRA>),
    Expression(Expression<EXTRA>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum StringVariant<EXTRA> {
    SingleQuoted(Vec<StringFragment<EXTRA>>),
    DoubleQuoted(Vec<DoubleQuotedFragment<EXTRA>>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct StringExpr<EXTRA> {
    pub data: StringVariant<EXTRA>,
    pub extra: EXTRA,
}