use crate::error::Result;
use crate::scalar::ScalarValue;
use crate::variable::VarProvider;
pub struct SystemVar {}
impl SystemVar {
pub fn new() -> Self {
Self {}
}
}
impl VarProvider for SystemVar {
fn get_value(&self, var_names: Vec<String>) -> Result<ScalarValue> {
let s = format!("{}-{}", "system-var".to_string(), var_names.concat());
Ok(ScalarValue::Utf8(Some(s)))
}
}
pub struct UserDefinedVar {}
impl UserDefinedVar {
pub fn new() -> Self {
Self {}
}
}
impl VarProvider for UserDefinedVar {
fn get_value(&self, var_names: Vec<String>) -> Result<ScalarValue> {
let s = format!("{}-{}", "user-defined-var".to_string(), var_names.concat());
Ok(ScalarValue::Utf8(Some(s)))
}
}