hcl::template

Struct IfDirective

Source
pub struct IfDirective {
    pub cond_expr: Expression,
    pub true_template: Template,
    pub false_template: Option<Template>,
    pub if_strip: Strip,
    pub else_strip: Strip,
    pub endif_strip: Strip,
}
Expand description

The template if directive is the template equivalent of the conditional expression, allowing selection of one of two sub-templates based on the condition result.

Fields§

§cond_expr: Expression

The condition expression.

§true_template: Template

The template that is included in the result string if the conditional expression evaluates to true.

§false_template: Option<Template>

The template that is included in the result string if the if branch’s conditional expression evaluates to false. This is None if there is no else branch in which case the result string will be empty.

§if_strip: Strip

The whitespace strip mode to use on the template elements preceeding and following after the if expression.

§else_strip: Strip

The whitespace strip mode to use on the template elements preceeding and following after the else expression. This has no effect if false_template is None.

§endif_strip: Strip

The whitespace strip mode to use on the template elements preceeding and following after the endif marker of this directive.

Implementations§

Source§

impl IfDirective

Source

pub fn new<T>(cond_expr: T, true_template: Template) -> IfDirective
where T: Into<Expression>,

Creates a new IfDirective from a conditional expression and a template that is included in the result string if the conditional expression evaluates to true.

Source

pub fn with_false_template<T>(self, else_template: T) -> IfDirective
where T: Into<Template>,

Adds a template for the else branch which is included in the result string if the condition of the IfDirective evaluates to false and returns the modified IfDirective.

Source

pub fn with_if_strip(self, strip: Strip) -> IfDirective

Sets the whitespace strip mode to use on the template elements preceeding and following after the if expression and returns the modified IfDirective.

Source

pub fn with_else_strip(self, strip: Strip) -> IfDirective

Sets the whitespace strip mode to use on the template elements preceeding and following after the else expression and returns the modified IfDirective.

Source

pub fn with_endif_strip(self, strip: Strip) -> IfDirective

Sets the whitespace strip mode to use on the template elements preceeding and following after the endif marker of this directive and returns the modified IfDirective.

Trait Implementations§

Source§

impl Clone for IfDirective

Source§

fn clone(&self) -> IfDirective

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IfDirective

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Format for IfDirective

Source§

fn format<W>(&self, fmt: &mut Formatter<'_, W>) -> Result<()>
where W: Write,

Formats a HCL structure using a formatter and writes the result to the provided writer. Read more
Source§

fn format_vec<W>(&self, fmt: &mut Formatter<'_, W>) -> Result<Vec<u8>>
where W: Write + AsMut<Vec<u8>>,

Formats a HCL structure using a formatter and returns the result as a Vec<u8>. Read more
Source§

fn format_string<W>(&self, fmt: &mut Formatter<'_, W>) -> Result<String>
where W: Write + AsMut<Vec<u8>>,

Formats a HCL structure using a formatter and returns the result as a String. Read more
Source§

impl From<IfDirective> for Directive

Source§

fn from(directive: IfDirective) -> Self

Converts to this type from the input type.
Source§

impl From<IfDirective> for IfDirective

Source§

fn from(value: IfDirective) -> Self

Converts to this type from the input type.
Source§

impl From<IfDirective> for IfDirective

Source§

fn from(value: IfDirective) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for IfDirective

Source§

fn eq(&self, other: &IfDirective) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for IfDirective

Source§

impl StructuralPartialEq for IfDirective

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.