async_anthropic/
messages.rs

1use crate::{
2    errors::CreateMessagesError,
3    types::{CreateMessagesRequest, CreateMessagesResponse},
4    Client,
5};
6
7pub const DEFAULT_MAX_TOKENS: i32 = 2048;
8
9#[derive(Debug, Clone)]
10pub struct Messages<'c> {
11    client: &'c Client,
12}
13
14impl Messages<'_> {
15    pub fn new(client: &Client) -> Messages {
16        Messages { client }
17    }
18
19    #[tracing::instrument(skip_all)]
20    pub async fn create(
21        &self,
22        request: impl Into<CreateMessagesRequest>,
23    ) -> Result<CreateMessagesResponse, CreateMessagesError> {
24        // TODO: Handle streams like a champ
25        //
26        self.client
27            .post("/v1/messages", request.into())
28            .await
29            .map_err(CreateMessagesError::AnthropicError)
30    }
31}