gproxy_protocol/transform/openai/create_image_edit/gemini/
response.rs1use crate::gemini::generate_content::response::GeminiGenerateContentResponse;
2use crate::openai::create_image_edit::response::OpenAiCreateImageEditResponse;
3use crate::transform::openai::create_image::gemini::utils::{
4 create_image_response_body_from_gemini_response, openai_response_headers_from_gemini,
5};
6use crate::transform::openai::model_list::gemini::utils::openai_error_response_from_gemini;
7use crate::transform::utils::TransformError;
8
9impl TryFrom<GeminiGenerateContentResponse> for OpenAiCreateImageEditResponse {
10 type Error = TransformError;
11
12 fn try_from(value: GeminiGenerateContentResponse) -> Result<Self, TransformError> {
13 Ok(match value {
14 GeminiGenerateContentResponse::Success {
15 stats_code,
16 headers,
17 body,
18 } => OpenAiCreateImageEditResponse::Success {
19 stats_code,
20 headers: openai_response_headers_from_gemini(headers),
21 body: create_image_response_body_from_gemini_response(body)?,
22 },
23 GeminiGenerateContentResponse::Error {
24 stats_code,
25 headers,
26 body,
27 } => OpenAiCreateImageEditResponse::Error {
28 stats_code,
29 headers: openai_response_headers_from_gemini(headers),
30 body: openai_error_response_from_gemini(stats_code, body),
31 },
32 })
33 }
34}