use std::collections::HashMap;
use crate::core::error::A2uiError;
use crate::core::model::data_context::DataContext;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ReturnType {
String,
Number,
Boolean,
Array,
Object,
Any,
Void,
}
pub trait FunctionImplementation: Send + Sync + 'static {
fn name(&self) -> &'static str;
fn return_type(&self) -> ReturnType;
fn execute(
&self,
args: &HashMap<String, serde_json::Value>,
context: &DataContext,
) -> Result<serde_json::Value, A2uiError>;
}