Skip to content

Commit d82a605

Browse files
committed
remove async-convert
1 parent 276414c commit d82a605

File tree

5 files changed

+28
-25
lines changed

5 files changed

+28
-25
lines changed

async-openai-wasm/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ serde_json = "1.0"
3737
thiserror = "2.0"
3838
tracing = "0.1"
3939
derive_builder = "0.20"
40-
async-convert = "1.0"
4140
secrecy = { version = "0.10", features = ["serde"] }
4241
pin-project = "1.1"
4342
bytes = "1.9"

async-openai-wasm/src/client.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ use bytes::Bytes;
77
use futures::stream::Filter;
88
use futures::{stream::StreamExt, Stream};
99
use pin_project::pin_project;
10+
use reqwest::multipart::Form;
1011
use reqwest_eventsource::{Event, EventSource, RequestBuilderExt};
1112
use serde::{de::DeserializeOwned, Serialize};
1213

14+
use crate::util::async_convert::AsyncTryFrom;
1315
use crate::{
1416
config::{Config, OpenAIConfig},
1517
error::{map_deserialization_error, OpenAIError, WrappedError},
@@ -261,7 +263,7 @@ impl<C: Config> Client<C> {
261263
/// POST a form at {path} and return the response body
262264
pub(crate) async fn post_form_raw<F>(&self, path: &str, form: F) -> Result<Bytes, OpenAIError>
263265
where
264-
reqwest::multipart::Form: async_convert::TryFrom<F, Error = OpenAIError>,
266+
Form: AsyncTryFrom<F, Error = OpenAIError>,
265267
F: Clone,
266268
{
267269
let request_maker = || async {
@@ -270,7 +272,7 @@ impl<C: Config> Client<C> {
270272
.post(self.config.url(path))
271273
.query(&self.config.query())
272274
.headers(self.config.headers())
273-
.multipart(async_convert::TryFrom::try_from(form.clone()).await?)
275+
.multipart(<Form as AsyncTryFrom<F>>::try_from(form.clone()).await?)
274276
.build()?)
275277
};
276278

@@ -281,7 +283,7 @@ impl<C: Config> Client<C> {
281283
pub(crate) async fn post_form<O, F>(&self, path: &str, form: F) -> Result<O, OpenAIError>
282284
where
283285
O: DeserializeOwned,
284-
reqwest::multipart::Form: async_convert::TryFrom<F, Error = OpenAIError>,
286+
Form: AsyncTryFrom<F, Error = OpenAIError>,
285287
F: Clone,
286288
{
287289
let request_maker = || async {
@@ -290,7 +292,7 @@ impl<C: Config> Client<C> {
290292
.post(self.config.url(path))
291293
.query(&self.config.query())
292294
.headers(self.config.headers())
293-
.multipart(async_convert::TryFrom::try_from(form.clone()).await?)
295+
.multipart(<Form as AsyncTryFrom<F>>::try_from(form.clone()).await?)
294296
.build()?)
295297
};
296298

async-openai-wasm/src/types/impls.rs

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ use std::fmt::Display;
22

33
use bytes::Bytes;
44

5-
use crate::{error::OpenAIError, types::InputSource, util::create_file_part};
6-
75
use super::{
86
AddUploadPartRequest, AudioInput, AudioResponseFormat, ChatCompletionFunctionCall,
97
ChatCompletionFunctions, ChatCompletionNamedToolChoice, ChatCompletionRequestAssistantMessage,
@@ -14,13 +12,14 @@ use super::{
1412
ChatCompletionRequestSystemMessage, ChatCompletionRequestSystemMessageContent,
1513
ChatCompletionRequestToolMessage, ChatCompletionRequestToolMessageContent,
1614
ChatCompletionRequestUserMessage, ChatCompletionRequestUserMessageContent,
17-
ChatCompletionRequestUserMessageContentPart,ChatCompletionToolChoiceOption, CreateFileRequest, CreateImageEditRequest,
18-
CreateImageVariationRequest, CreateMessageRequestContent, CreateTranscriptionRequest,
19-
CreateTranslationRequest, DallE2ImageSize, EmbeddingInput, FileInput, FilePurpose,
20-
FunctionName, ImageInput, ImageModel, ImageResponseFormat, ImageSize, ImageUrl,
21-
ModerationInput, Prompt, Role, Stop,
22-
TimestampGranularity,
15+
ChatCompletionRequestUserMessageContentPart, ChatCompletionToolChoiceOption, CreateFileRequest,
16+
CreateImageEditRequest, CreateImageVariationRequest, CreateMessageRequestContent,
17+
CreateTranscriptionRequest, CreateTranslationRequest, DallE2ImageSize, EmbeddingInput,
18+
FileInput, FilePurpose, FunctionName, ImageInput, ImageModel, ImageResponseFormat, ImageSize,
19+
ImageUrl, ModerationInput, Prompt, Role, Stop, TimestampGranularity,
2320
};
21+
use crate::util::async_convert::AsyncTryFrom;
22+
use crate::{error::OpenAIError, types::InputSource, util::create_file_part};
2423

2524
/// for `impl_from!(T, Enum)`, implements
2625
/// - `From<T>`
@@ -742,8 +741,7 @@ impl Default for ChatCompletionRequestToolMessageContent {
742741

743742
// start: types to multipart from
744743

745-
#[async_convert::async_trait]
746-
impl async_convert::TryFrom<CreateTranscriptionRequest> for reqwest::multipart::Form {
744+
impl AsyncTryFrom<CreateTranscriptionRequest> for reqwest::multipart::Form {
747745
type Error = OpenAIError;
748746

749747
async fn try_from(request: CreateTranscriptionRequest) -> Result<Self, Self::Error> {
@@ -779,8 +777,7 @@ impl async_convert::TryFrom<CreateTranscriptionRequest> for reqwest::multipart::
779777
}
780778
}
781779

782-
#[async_convert::async_trait]
783-
impl async_convert::TryFrom<CreateTranslationRequest> for reqwest::multipart::Form {
780+
impl AsyncTryFrom<CreateTranslationRequest> for reqwest::multipart::Form {
784781
type Error = OpenAIError;
785782

786783
async fn try_from(request: CreateTranslationRequest) -> Result<Self, Self::Error> {
@@ -805,8 +802,7 @@ impl async_convert::TryFrom<CreateTranslationRequest> for reqwest::multipart::Fo
805802
}
806803
}
807804

808-
#[async_convert::async_trait]
809-
impl async_convert::TryFrom<CreateImageEditRequest> for reqwest::multipart::Form {
805+
impl AsyncTryFrom<CreateImageEditRequest> for reqwest::multipart::Form {
810806
type Error = OpenAIError;
811807

812808
async fn try_from(request: CreateImageEditRequest) -> Result<Self, Self::Error> {
@@ -847,8 +843,7 @@ impl async_convert::TryFrom<CreateImageEditRequest> for reqwest::multipart::Form
847843
}
848844
}
849845

850-
#[async_convert::async_trait]
851-
impl async_convert::TryFrom<CreateImageVariationRequest> for reqwest::multipart::Form {
846+
impl AsyncTryFrom<CreateImageVariationRequest> for reqwest::multipart::Form {
852847
type Error = OpenAIError;
853848

854849
async fn try_from(request: CreateImageVariationRequest) -> Result<Self, Self::Error> {
@@ -882,8 +877,7 @@ impl async_convert::TryFrom<CreateImageVariationRequest> for reqwest::multipart:
882877
}
883878
}
884879

885-
#[async_convert::async_trait]
886-
impl async_convert::TryFrom<CreateFileRequest> for reqwest::multipart::Form {
880+
impl AsyncTryFrom<CreateFileRequest> for reqwest::multipart::Form {
887881
type Error = OpenAIError;
888882

889883
async fn try_from(request: CreateFileRequest) -> Result<Self, Self::Error> {
@@ -895,8 +889,7 @@ impl async_convert::TryFrom<CreateFileRequest> for reqwest::multipart::Form {
895889
}
896890
}
897891

898-
#[async_convert::async_trait]
899-
impl async_convert::TryFrom<AddUploadPartRequest> for reqwest::multipart::Form {
892+
impl AsyncTryFrom<AddUploadPartRequest> for reqwest::multipart::Form {
900893
type Error = OpenAIError;
901894

902895
async fn try_from(request: AddUploadPartRequest) -> Result<Self, Self::Error> {

async-openai-wasm/src/util.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
pub(crate) mod async_convert;
2+
13
use reqwest::Body;
24

35
use crate::error::OpenAIError;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pub trait AsyncTryFrom<T>: Sized {
2+
/// The type returned in the event of a conversion error.
3+
type Error;
4+
5+
/// Performs the conversion.
6+
async fn try_from(value: T) -> Result<Self, Self::Error>;
7+
}

0 commit comments

Comments
 (0)