gproxy_protocol/transform/gemini/stream_generate_content/claude/
request.rs1use crate::claude::create_message::request::ClaudeCreateMessageRequest;
2use crate::claude::create_message::types::HttpMethod as ClaudeHttpMethod;
3use crate::gemini::generate_content::request::{
4 GeminiGenerateContentRequest, PathParameters as GeminiGenerateContentPathParameters,
5 QueryParameters as GeminiGenerateContentQueryParameters,
6 RequestHeaders as GeminiGenerateContentRequestHeaders,
7};
8use crate::gemini::generate_content::types::HttpMethod as GeminiGenerateContentHttpMethod;
9use crate::gemini::stream_generate_content::request::GeminiStreamGenerateContentRequest;
10use crate::transform::utils::TransformError;
11
12impl TryFrom<GeminiStreamGenerateContentRequest> for ClaudeCreateMessageRequest {
13 type Error = TransformError;
14
15 fn try_from(value: GeminiStreamGenerateContentRequest) -> Result<Self, TransformError> {
16 let mut output = ClaudeCreateMessageRequest::try_from(GeminiGenerateContentRequest {
17 method: GeminiGenerateContentHttpMethod::Post,
18 path: GeminiGenerateContentPathParameters {
19 model: value.path.model,
20 },
21 query: GeminiGenerateContentQueryParameters::default(),
22 headers: GeminiGenerateContentRequestHeaders::default(),
23 body: value.body,
24 })?;
25 output.method = ClaudeHttpMethod::Post;
26 output.body.stream = Some(true);
27 Ok(output)
28 }
29}