use crate::ConfigResult;
use crate::options::ConfigReadOptions;
pub struct ConfigParseContext<'a> {
key: &'a str,
options: &'a ConfigReadOptions,
substitute: &'a dyn Fn(&str) -> ConfigResult<String>,
}
impl<'a> ConfigParseContext<'a> {
pub(crate) fn new(
key: &'a str,
options: &'a ConfigReadOptions,
substitute: &'a dyn Fn(&str) -> ConfigResult<String>,
) -> Self {
Self {
key,
options,
substitute,
}
}
#[inline]
pub fn key(&self) -> &str {
self.key
}
#[inline]
pub fn options(&self) -> &ConfigReadOptions {
self.options
}
pub(crate) fn substitute_string(&self, value: &str) -> ConfigResult<String> {
(self.substitute)(value)
}
}