Struct germinate::Seed [−][src]
pub struct Seed<'a> { /* fields omitted */ }
Expand description
A Seed
is responsible for parsing the template string, loading the values, and optionally
making the replacements via the germinate method
Implementations
Adds a custom loader to allow users of the library to add their own value sources
Example
use germinate::{Seed, Loader};
struct LanguageLoader {}
#[async_trait::async_trait]
impl Loader for LanguageLoader {
async fn load(&self, key: &str) -> anyhow::Result<String> {
// Add your logic for loading the value here
Ok(match key {
"go" => String::from("Go"),
_ => String::from("Rust"),
})
}
}
#[tokio::main]
async fn main() {
std::env::set_var("NAME", "John");
let mut seed = Seed::new("Hi %env:NAME%, Welcome to %language:rust%! Say goodbye to %language:go%...");
seed.add_custom_loader("language".into(), Box::new(LanguageLoader{}));
let output = seed.germinate().await.unwrap();
assert_eq!(String::from("Hi John, Welcome to Rust! Say goodbye to Go..."), output);
}
Parses the template string and generates a HashMap
of key value replacements, loading the
value for each replacement as it goes. If it finds a template string with a custom source
without a related loader, it will return an error. It will also return an error if a value
fails to load
Examples
#[tokio::main]
async fn main() {
std::env::set_var("NAME", "John");
let mut seed = germinate::Seed::new("Hi %env:NAME%, Welcome to Rust!");
let replacements = seed.parse().await.unwrap();
assert_eq!(replacements.get("%env:NAME%").unwrap(), &String::from("John"));
}
The germinate is a wrapper around the parse function which follows up by actually making the replacements in the template string and returning the result.
Examples
#[tokio::main]
async fn main() {
std::env::set_var("NAME", "John");
let mut seed = germinate::Seed::new("Hi %env:NAME%, Welcome to Rust!");
let output = seed.germinate().await.unwrap();
assert_eq!(String::from("Hi John, Welcome to Rust!"), output);
}
Auto Trait Implementations
impl<'a> !RefUnwindSafe for Seed<'a>
impl<'a> !UnwindSafe for Seed<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more