a2ui_base/catalog/
function_api.rs1use std::collections::HashMap;
4
5use crate::error::A2uiError;
6use crate::model::data_context::DataContext;
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
10pub enum ReturnType {
11 String,
12 Number,
13 Boolean,
14 Array,
15 Object,
16 Any,
17 Void,
18}
19
20pub trait FunctionImplementation: Send + Sync + 'static {
22 fn name(&self) -> &'static str;
24
25 fn return_type(&self) -> ReturnType;
27
28 fn execute(
32 &self,
33 args: &HashMap<String, serde_json::Value>,
34 context: &DataContext,
35 ) -> Result<serde_json::Value, A2uiError>;
36}