Skip to main content

ModuleFn

Type Alias ModuleFn 

Source
pub type ModuleFn = Arc<dyn for<'ctx> Fn(&[KindedSlot], &ModuleContext<'ctx>) -> Result<KindedSlot, String> + Send + Sync>;
Expand description

A module function callable from Shape (synchronous).

Per ADR-006 §2.7.5 (cross-crate ABI policy), this internal Rust trait object migrates to KindedSlot — it lives entirely inside shape-runtime with no cross-crate ABI concern. Stable extension contracts (RawCallableInvoker::invoke) stay on raw bits.

Takes a slice of KindedSlot arguments plus a ModuleContext that provides access to the type schema registry and a callable invoker. The function must be Send + Sync for thread safety.

Aliased Type§

pub struct ModuleFn { /* private fields */ }