Trait Provider Plugin

View as Markdown

Generated from cargo doc --no-deps -p nemo-relay -p nemo-relay-adaptive -p nemo-relay-ffi.

pub trait ProviderPlugin: Send + Sync {
    // Required methods
    fn plugin_id(&self) -> &str;
    fn plugin_name(&self) -> &str;
    fn translate(&self, input: &PluginInput<'_>) -> Result<PluginOutput>;
    fn capabilities(&self) -> BackendCapabilities;
}

Provider plugin trait for backend-specific translation.

Plugins are stateless on the forward path. They translate provider-agnostic intents into backend-native API parameters.

Object Safety

This trait is object-safe and can be stored as Arc<dyn ProviderPlugin>.

Thread Safety

The Send + Sync bounds allow plugins to be shared across async tasks and threads.

Required Methods

plugin_id

fn plugin_id(&self) -> &str

Unique identifier for this plugin (e.g., “anthropic”, “openai”, “passthrough”).

plugin_name

fn plugin_name(&self) -> &str

Human-readable name for this plugin.

translate

fn translate(&self, input: &PluginInput<'_>) -> Result<PluginOutput>

Translate intents into backend-native API parameters.

capabilities

fn capabilities(&self) -> BackendCapabilities

Report the capabilities of the backend this plugin targets.

Implementors

impl ProviderPlugin for AnthropicCachePlugin

impl ProviderPlugin for AnthropicCachePlugin

impl ProviderPlugin for OpenAICachePlugin

impl ProviderPlugin for OpenAICachePlugin

impl ProviderPlugin for PassthroughPlugin

impl ProviderPlugin for PassthroughPlugin