MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / Provider

Interface Provider

crates/opencode-provider/src/provider.rs:33–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31
32#[async_trait]
33pub trait Provider: Send + Sync {
34 fn id(&self) -> &str;
35 fn name(&self) -> &str;
36
37 fn models(&self) -> Vec<ModelInfo>;
38 fn get_model(&self, id: &str) -> Option<&ModelInfo>;
39
40 async fn chat(&self, request: ChatRequest) -> Result<ChatResponse, ProviderError>;
41 async fn chat_stream(&self, request: ChatRequest) -> Result<StreamResult, ProviderError>;
42}
43
44#[derive(Debug, thiserror::Error)]
45pub enum ProviderError {

Callers

nothing calls this directly

Implementers 15

anthropic.rscrates/opencode-provider/src/anthropic
cerebras.rscrates/opencode-provider/src/cerebras.
together.rscrates/opencode-provider/src/together.
perplexity.rscrates/opencode-provider/src/perplexit
groq.rscrates/opencode-provider/src/groq.rs
openai.rscrates/opencode-provider/src/openai.rs
bedrock.rscrates/opencode-provider/src/bedrock.r
openrouter.rscrates/opencode-provider/src/openroute
gitlab.rscrates/opencode-provider/src/gitlab.rs
xai.rscrates/opencode-provider/src/xai.rs
google.rscrates/opencode-provider/src/google.rs
vertex.rscrates/opencode-provider/src/vertex.rs

Calls

no outgoing calls

Tested by

no test coverage detected