Skip to main content

PluginRuntime

Trait PluginRuntime 

Source
pub trait PluginRuntime: Send + Sync {
    // Required methods
    fn instantiate_router(
        &self,
        manifest: &PluginManifest,
    ) -> Result<Arc<dyn RouterPlugin>, RuntimeError>;
    fn instantiate_dialect(
        &self,
        manifest: &PluginManifest,
    ) -> Result<Arc<dyn UpstreamDialect>, RuntimeError>;
    fn instantiate_signer_factory(
        &self,
        manifest: &PluginManifest,
    ) -> Result<Arc<dyn SignerFactory>, RuntimeError>;
    fn instantiate_observability(
        &self,
        manifest: &PluginManifest,
    ) -> Result<Arc<dyn ObservabilityHook>, RuntimeError>;
}
Expand description

Runtime abstraction for concrete plugin systems such as Extism.

Required Methods§

Source

fn instantiate_router( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn RouterPlugin>, RuntimeError>

Instantiates a router plugin.

Source

fn instantiate_dialect( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn UpstreamDialect>, RuntimeError>

Instantiates an upstream dialect plugin.

Source

fn instantiate_signer_factory( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn SignerFactory>, RuntimeError>

Instantiates a signer factory plugin.

Source

fn instantiate_observability( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn ObservabilityHook>, RuntimeError>

Instantiates an observability hook plugin.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§