#![cfg(feature = "partial-eval")]
use crate::{
ast::{CallStyle, Extension, ExtensionFunction, ExtensionOutputValue, Unknown, Value},
entities::SchemaType,
evaluator,
};
fn create_new_unknown(v: Value) -> evaluator::Result<ExtensionOutputValue> {
Ok(ExtensionOutputValue::Unknown(Unknown::new_untyped(
v.get_as_string()?.clone(),
)))
}
#[allow(clippy::unwrap_used)]
pub fn extension() -> Extension {
Extension::new(
"partial_evaluation".parse().unwrap(),
vec![ExtensionFunction::unary_never(
"unknown".parse().unwrap(),
CallStyle::FunctionStyle,
Box::new(create_new_unknown),
Some(SchemaType::String),
)],
)
}