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 TypeFloat<EXTRA> {
    pub min: Option<crate::puppet_lang::expression::Float<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Float<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeInteger<EXTRA> {
    pub min: Option<crate::puppet_lang::expression::Integer<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Integer<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeString<EXTRA> {
    pub min: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeArray<EXTRA> {
    pub inner: Option<Box<TypeSpecification<EXTRA>>>,
    pub min: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeHash<EXTRA> {
    pub key: Option<Box<TypeSpecification<EXTRA>>>,
    pub value: Option<Box<TypeSpecification<EXTRA>>>,
    pub min: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum TypeOptionalVariant<EXTRA> {
    TypeSpecification(Box<TypeSpecification<EXTRA>>),
    Term(Box<crate::puppet_lang::expression::Term<EXTRA>>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeOptional<EXTRA> {
    pub value: TypeOptionalVariant<EXTRA>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum TypeSensitiveVariant<EXTRA> {
    TypeSpecification(Box<TypeSpecification<EXTRA>>),
    Term(Box<crate::puppet_lang::expression::Term<EXTRA>>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeSensitive<EXTRA> {
    pub value: TypeSensitiveVariant<EXTRA>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct OptionalStructKey<EXTRA> {
    pub value: crate::puppet_lang::string::StringExpr<EXTRA>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct NotUndefStructKey<EXTRA> {
    pub value: crate::puppet_lang::string::StringExpr<EXTRA>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum TypeStructKey<EXTRA> {
    String(crate::puppet_lang::string::StringExpr<EXTRA>),
    Optional(OptionalStructKey<EXTRA>),
    NotUndef(NotUndefStructKey<EXTRA>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeStructKV<EXTRA> {
    pub key: TypeStructKey<EXTRA>,
    pub value: TypeSpecification<EXTRA>,
    pub comment: Vec<crate::puppet_lang::comment::Comment<EXTRA>>,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeStruct<EXTRA> {
    pub keys: crate::puppet_lang::List<EXTRA, TypeStructKV<EXTRA>>,
    pub extra: EXTRA,
    pub left_inner_comment: Vec<crate::puppet_lang::comment::Comment<EXTRA>>,
    pub right_inner_comment: Vec<crate::puppet_lang::comment::Comment<EXTRA>>,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeTuple<EXTRA> {
    pub list: Vec<TypeSpecification<EXTRA>>,
    pub min: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub max: Option<crate::puppet_lang::expression::Usize<EXTRA>>,
    pub extra: EXTRA,
}

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

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Pattern<EXTRA> {
    pub list: Vec<crate::puppet_lang::expression::Regexp<EXTRA>>,
    pub extra: EXTRA,
}

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

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

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

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

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Variant<EXTRA> {
    pub list: Vec<TypeSpecification<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct Enum<EXTRA> {
    pub list: Vec<crate::puppet_lang::expression::Term<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct ExternalType<EXTRA> {
    pub name: Vec<String>,
    pub arguments: Vec<crate::puppet_lang::expression::Expression<EXTRA>>,
    pub extra: EXTRA,
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub enum TypeSpecificationVariant<EXTRA> {
    Float(TypeFloat<EXTRA>),
    Integer(TypeInteger<EXTRA>),
    Numeric(Numeric<EXTRA>),
    String(TypeString<EXTRA>),
    Pattern(Pattern<EXTRA>),
    Regex(Regex<EXTRA>),
    Hash(TypeHash<EXTRA>),
    Boolean(Boolean<EXTRA>),
    Array(TypeArray<EXTRA>),
    Undef(Undef<EXTRA>),
    Any(Any<EXTRA>),
    Optional(TypeOptional<EXTRA>),
    Variant(Variant<EXTRA>),
    Enum(Enum<EXTRA>),
    Struct(TypeStruct<EXTRA>),
    ExternalType(ExternalType<EXTRA>),
    Sensitive(TypeSensitive<EXTRA>),
    Tuple(TypeTuple<EXTRA>),
}

#[derive(Clone, Debug, PartialEq, Serialize)]
pub struct TypeSpecification<EXTRA> {
    pub data: TypeSpecificationVariant<EXTRA>,
    pub extra: EXTRA,
    pub comment: Vec<crate::puppet_lang::comment::Comment<EXTRA>>,
}