pub fn env_with_context_no_errors<SI, CO, C>(
input: &SI,
context: C,
) -> Cow<'_, str>Expand description
Same as env_with_context(), but forbids the variable lookup function to return errors.
This function also performs environment expansion, but it requires context function of type
FnMut(&str) -> Option<CO> instead of FnMut(&str) -> Result<Option<CO>, E>. This simplifies
the API when you know in advance that the context lookups may not fail.
Because of the above, instead of Result<Cow<str>, LookupError<E>> this function returns just
Cow<str>.
Note that if the context function returns None, the behavior remains the same as that of
env_with_context(): the variable reference will remain in the output string unexpanded.
ยงExamples
fn context(s: &str) -> Option<&'static str> {
match s {
"A" => Some("a value"),
"B" => Some("b value"),
_ => None
}
}
// Known variables are expanded
assert_eq!(
shellexpand::env_with_context_no_errors("begin/$A/${B}s/end", context),
"begin/a value/b values/end"
);
// Unknown variables are left as is
assert_eq!(
shellexpand::env_with_context_no_errors("begin/$U/end", context),
"begin/$U/end"
);