Skip to main content

ProviderPlugin

Trait ProviderPlugin 

Source
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;
}
Expand description

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§

Source

fn plugin_id(&self) -> &str

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

Source

fn plugin_name(&self) -> &str

Human-readable name for this plugin.

Source

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

Translate intents into backend-native API parameters.

Source

fn capabilities(&self) -> BackendCapabilities

Report the capabilities of the backend this plugin targets.

Implementors§