pub trait VariableResolver {
// Required methods
fn get_variable(
&self,
name: &str,
loop_context: Option<&HashMap<String, Value>>,
) -> Result<Value, ParserError>;
fn insert_variable(
&mut self,
name: &str,
value: Value,
) -> Result<(), ParserError>;
fn update_variable(
&mut self,
name: &str,
value: Value,
) -> Result<(), ParserError>;
fn resolve_scope(&self, name: &str) -> Result<(String, String), ParserError>;
}
Required Methods§
Sourcefn get_variable(
&self,
name: &str,
loop_context: Option<&HashMap<String, Value>>,
) -> Result<Value, ParserError>
fn get_variable( &self, name: &str, loop_context: Option<&HashMap<String, Value>>, ) -> Result<Value, ParserError>
Gets a variable’s value, potentially checking a loop context first.
Sourcefn insert_variable(
&mut self,
name: &str,
value: Value,
) -> Result<(), ParserError>
fn insert_variable( &mut self, name: &str, value: Value, ) -> Result<(), ParserError>
Inserts a new variable. Loop context is not relevant here.
Sourcefn update_variable(
&mut self,
name: &str,
value: Value,
) -> Result<(), ParserError>
fn update_variable( &mut self, name: &str, value: Value, ) -> Result<(), ParserError>
Updates an existing variable. Loop context is not relevant here.
Sourcefn resolve_scope(&self, name: &str) -> Result<(String, String), ParserError>
fn resolve_scope(&self, name: &str) -> Result<(String, String), ParserError>
Resolves implicit scopes (e.g., entry:foo
-> <scope_id>:foo
).