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