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§
Sourcefn instantiate_router(
&self,
manifest: &PluginManifest,
) -> Result<Arc<dyn RouterPlugin>, RuntimeError>
fn instantiate_router( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn RouterPlugin>, RuntimeError>
Instantiates a router plugin.
Sourcefn instantiate_dialect(
&self,
manifest: &PluginManifest,
) -> Result<Arc<dyn UpstreamDialect>, RuntimeError>
fn instantiate_dialect( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn UpstreamDialect>, RuntimeError>
Instantiates an upstream dialect plugin.
Sourcefn instantiate_signer_factory(
&self,
manifest: &PluginManifest,
) -> Result<Arc<dyn SignerFactory>, RuntimeError>
fn instantiate_signer_factory( &self, manifest: &PluginManifest, ) -> Result<Arc<dyn SignerFactory>, RuntimeError>
Instantiates a signer factory plugin.
Sourcefn instantiate_observability(
&self,
manifest: &PluginManifest,
) -> Result<Arc<dyn ObservabilityHook>, RuntimeError>
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".