Skip to main content

ProcedureBodySynthesizer

Trait ProcedureBodySynthesizer 

Source
pub trait ProcedureBodySynthesizer:
    Send
    + Sync
    + Debug {
    // Required method
    fn synthesize(
        &self,
        decl: &DeclaredPlugin,
    ) -> Result<Arc<dyn ProcedurePlugin>, String>;
}
Expand description

Host callback that turns a declared-procedure record into an executable uni_plugin::traits::procedure::ProcedurePlugin.

uni-plugin-custom cannot reach the host’s QueryProcedureHost::execute_inner_query directly (no dep on uni-query), so the M9 cutover for declared-procedure body execution flows through this callback. uni-db implements ProcedureBodySynthesizer using uni_query::QueryProcedureHost::execute_inner_query and passes the impl to CustomPlugin::with_procedure_synthesizer.

Required Methods§

Source

fn synthesize( &self, decl: &DeclaredPlugin, ) -> Result<Arc<dyn ProcedurePlugin>, String>

Build a ProcedurePlugin whose invoke() runs the Cypher / Locy body of decl. Returns the synthesized plugin (which the caller registers into the PluginRegistry) or a string reason for failure.

§Errors

Returns a free-form error string on synthesis failure (bad signature shape, body parse errors, capability gaps).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§