Struct EnclosedTemplateParser

Source
pub struct EnclosedTemplateParser<EscapeParser, QueryParser> {
    pub config: ParserConfig,
    pub escape_parser: EscapeParser,
    pub query_parser: QueryParser,
}
Expand description

Parse a template string whose queries are placed between an opening bracket character and a closing bracket character, (such as curly braces).

Fields§

§config: ParserConfig§escape_parser: EscapeParser§query_parser: QueryParser

Implementations§

Source§

impl<EscapeParser, QueryParser> EnclosedTemplateParser<EscapeParser, QueryParser>

Source

pub fn with_config(self, config: ParserConfig) -> Self

Replace Parser::config.

Source

pub fn with_escape_parser<NewEscapeParser>( self, escape_parser: NewEscapeParser, ) -> Parser<NewEscapeParser, QueryParser>

Source

pub fn with_query_parser<NewQueryParser>( self, query_parser: NewQueryParser, ) -> Parser<EscapeParser, NewQueryParser>

Source§

impl EnclosedTemplateParser<(), ()>

Source

pub fn curly_braces() -> Self

Create a builder of an EnclosedTemplateParser of templates whose queries should be placed between curly braces.

The curly braces can be replaced by replacing the config.

The value returned from this function is not useful immediately. The query parser and the escape parser must be replaced first.

Usage example:

use lazy_template::{
    enclosed::{Parser, SimpleEscapeParser, SimpleQuery, SimpleQueryParser},
    IntoTemplateSystem,
};
let output = Parser::curly_braces()
    .with_escape_parser(SimpleEscapeParser)
    .with_query_parser(SimpleQueryParser)
    .into_template_system::<SimpleQuery>()
    .lazy_parse("{name} is a {age} years old {gender}")
    .to_string(|query| match query {
        "name" => Ok("Alice"),
        "age" => Ok("20"),
        "gender" => Ok("girl"),
        _ => Err(format!("Can't answer {query:?}")),
    })
    .unwrap();
assert_eq!(output, "Alice is a 20 years old girl");

Trait Implementations§

Source§

impl<EscapeParser: Clone, QueryParser: Clone> Clone for EnclosedTemplateParser<EscapeParser, QueryParser>

Source§

fn clone(&self) -> EnclosedTemplateParser<EscapeParser, QueryParser>

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<EscapeParser: Debug, QueryParser: Debug> Debug for EnclosedTemplateParser<EscapeParser, QueryParser>

Source§

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

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

impl<EscapeParser: Copy, QueryParser: Copy> Copy for EnclosedTemplateParser<EscapeParser, QueryParser>

Auto Trait Implementations§

§

impl<EscapeParser, QueryParser> Freeze for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: Freeze, QueryParser: Freeze,

§

impl<EscapeParser, QueryParser> RefUnwindSafe for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: RefUnwindSafe, QueryParser: RefUnwindSafe,

§

impl<EscapeParser, QueryParser> Send for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: Send, QueryParser: Send,

§

impl<EscapeParser, QueryParser> Sync for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: Sync, QueryParser: Sync,

§

impl<EscapeParser, QueryParser> Unpin for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: Unpin, QueryParser: Unpin,

§

impl<EscapeParser, QueryParser> UnwindSafe for EnclosedTemplateParser<EscapeParser, QueryParser>
where EscapeParser: UnwindSafe, QueryParser: UnwindSafe,

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<'a, Parser> IntoTemplateSystem for Parser
where Parser: Parse<'a>,

Source§

fn into_template_system<Query>(self) -> TemplateSystem<Self, Query>

Source§

impl<X> Pipe for X

Source§

fn pipe<Return, Function>(self, f: Function) -> Return
where Self: Sized, Function: FnOnce(Self) -> Return,

Apply f to self. Read more
Source§

fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Return
where Function: FnOnce(&'a Self) -> Return,

Apply f to &self. Read more
Source§

fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Return
where Function: FnOnce(&'a mut Self) -> Return,

Apply f to &mut self. Read more
Source§

fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: AsRef<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait AsRef<Param>. Read more
Source§

fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
where Self: AsMut<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait AsMut<Param>. Read more
Source§

fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: Deref<Target = Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait Deref<Target = Param>. Read more
Source§

fn pipe_deref_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
where Self: DerefMut<Target = Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait [DerefMut<Target = Param>]. Read more
Source§

fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: Borrow<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait Borrow<Param>. Read more
Source§

fn pipe_borrow_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
where Self: BorrowMut<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait BorrowMut<Param>. Read more
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.