summaryrefslogtreecommitdiffstats
path: root/src/client/claude.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/claude.rs')
-rw-r--r--src/client/claude.rs31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/client/claude.rs b/src/client/claude.rs
index 1094348..d3fc68d 100644
--- a/src/client/claude.rs
+++ b/src/client/claude.rs
@@ -1,12 +1,11 @@
use super::{
- catch_error, extract_system_message, ClaudeClient, Client, ExtraConfig, ImageUrl,
- MessageContent, MessageContentPart, Model, ModelConfig, PromptType, ReplyHandler, SendData,
+ catch_error, extract_system_message, ClaudeClient, ExtraConfig, ImageUrl, MessageContent,
+ MessageContentPart, Model, ModelConfig, PromptType, ReplyHandler, SendData,
};
use crate::utils::PromptKind;
use anyhow::{anyhow, bail, Result};
-use async_trait::async_trait;
use futures_util::StreamExt;
use reqwest::{Client as ReqwestClient, RequestBuilder};
use reqwest_eventsource::{Error as EventSourceError, Event, RequestBuilderExt};
@@ -24,26 +23,6 @@ pub struct ClaudeConfig {
pub extra: Option<ExtraConfig>,
}
-#[async_trait]
-impl Client for ClaudeClient {
- client_common_fns!();
-
- async fn send_message_inner(&self, client: &ReqwestClient, data: SendData) -> Result<String> {
- let builder = self.request_builder(client, data)?;
- claude_send_message(builder).await
- }
-
- async fn send_message_streaming_inner(
- &self,
- client: &ReqwestClient,
- handler: &mut ReplyHandler,
- data: SendData,
- ) -> Result<()> {
- let builder = self.request_builder(client, data)?;
- claude_send_message_streaming(builder, handler).await
- }
-}
-
impl ClaudeClient {
list_models_fn!(
ClaudeConfig,
@@ -79,6 +58,12 @@ impl ClaudeClient {
}
}
+impl_client_trait!(
+ ClaudeClient,
+ claude_send_message,
+ claude_send_message_streaming
+);
+
pub async fn claude_send_message(builder: RequestBuilder) -> Result<String> {
let res = builder.send().await?;
let status = res.status();