Struct ByteTemplateBuf

Source
pub struct ByteTemplateBuf { /* private fields */ }
Expand description

A parsed byte template that owns the source vector.

You can parse the template once and call Self::expand() multiple times. This is generally more efficient than calling substitute() multiple times on the same string.

This template takes ownership of the source data. If you do not need ownership, you can also use ByteTemplate to borrow it instead. Depending on your application, that could prevent creating an unnecessary copy of the source data.

If you have a string instead of a byte slice, you can use Template or TemplateBuf.

Implementations§

Source§

impl ByteTemplateBuf

Source

pub fn from_vec(source: Vec<u8>) -> Result<Self, ParseError>

Parse a template from a vector of bytes.

The source is can contain variables to be substituted later, when you call Self::expand().

Variables have the form $NAME, ${NAME} or ${NAME:default}. A variable name can only consist of ASCII letters, digits and underscores. They are allowed to start with numbers.

You can escape dollar signs, backslashes, colons and braces with a backslash.

Source

pub fn into_source(self) -> Vec<u8>

Consume the template to get the original source vector.

Source

pub fn as_template<'a>(&'a self) -> &'a ByteTemplate<'a>

Borrow the template.

Source

pub fn expand<'b, M>(&self, variables: &'b M) -> Result<Vec<u8>, ExpandError>
where M: VariableMap<'b> + ?Sized, M::Value: AsRef<[u8]>,

Expand the template.

This will substitute all variables in the template with the values from the given map.

You can pass either a HashMap, BTreeMap or Env as the variables parameter. The maps must have &str or String keys, and the values must be [AsRef<[u8]>].

Trait Implementations§

Source§

impl Clone for ByteTemplateBuf

Source§

fn clone(&self) -> Self

Returns a duplicate 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 ByteTemplateBuf

Source§

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

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

impl From<&ByteTemplate<'_>> for ByteTemplateBuf

Source§

fn from(other: &ByteTemplate<'_>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a ByteTemplateBuf> for &'a ByteTemplate<'a>

Source§

fn from(other: &'a ByteTemplateBuf) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a ByteTemplateBuf> for ByteTemplate<'a>

Source§

fn from(other: &'a ByteTemplateBuf) -> Self

Converts to this type from the input type.
Source§

impl From<ByteTemplate<'_>> for ByteTemplateBuf

Source§

fn from(other: ByteTemplate<'_>) -> Self

Converts to this type from the input type.

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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.