#![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(),
)))
}
#[expect(
clippy::unwrap_used,
reason = "all uses of `unwrap` here on parsing extension names are correct names"
)]
pub fn extension() -> Extension {
Extension::new(
"partial_evaluation".parse().unwrap(),
vec![ExtensionFunction::partial_eval_unknown(
"unknown".parse().unwrap(),
CallStyle::FunctionStyle,
Box::new(create_new_unknown),
SchemaType::String,
)],
std::iter::empty(),
)
}