use async_trait::async_trait;
use serde_json::{Map, Value};
use crate::core::exceptions::{OpError, OperonError};
use crate::core::ops::base::{BaseOp, OpContext, OpMeta};
pub struct FuncOp {
pub meta: OpMeta,
pub func_name: String,
pub is_async: bool,
pub is_generator: bool,
}
#[async_trait]
impl BaseOp for FuncOp {
fn meta(&self) -> &OpMeta {
&self.meta
}
async fn exec_core(
&self,
_inputs: Map<String, Value>,
_ctx: &OpContext<'_>,
) -> Result<Option<Value>, OperonError> {
Err(OperonError::Op(OpError::Code(format!(
"FuncOp::exec_core not yet implemented (phase 1 scaffold for func_name={:?})",
self.func_name
))))
}
}