gproxy_protocol/transform/openai/model_get/gemini/
response.rs1use crate::gemini::model_get::response::GeminiModelGetResponse;
2use crate::openai::model_get::response::OpenAiModelGetResponse;
3use crate::openai::types::OpenAiResponseHeaders;
4use crate::transform::openai::model_get::gemini::utils::{
5 openai_error_response_from_gemini, openai_model_from_gemini_model,
6};
7use crate::transform::utils::TransformError;
8
9impl TryFrom<GeminiModelGetResponse> for OpenAiModelGetResponse {
10 type Error = TransformError;
11
12 fn try_from(value: GeminiModelGetResponse) -> Result<Self, TransformError> {
13 Ok(match value {
14 GeminiModelGetResponse::Success {
15 stats_code,
16 headers,
17 body,
18 } => OpenAiModelGetResponse::Success {
19 stats_code,
20 headers: OpenAiResponseHeaders {
21 extra: headers.extra,
22 },
23 body: openai_model_from_gemini_model(body),
24 },
25 GeminiModelGetResponse::Error {
26 stats_code,
27 headers,
28 body,
29 } => OpenAiModelGetResponse::Error {
30 stats_code,
31 headers: OpenAiResponseHeaders {
32 extra: headers.extra,
33 },
34 body: openai_error_response_from_gemini(stats_code, body),
35 },
36 })
37 }
38}