---
source: src/test_helpers.rs
expression: "&generated_code"
---
//! Generated types from OpenAPI specification
//!
//! This file contains all the generated types for the API.
//! Do not edit manually - regenerate using the appropriate script.
#![allow(clippy::large_enum_variant)]
#![allow(clippy::format_in_format_args)]
#![allow(clippy::let_unit_value)]
#![allow(unreachable_patterns)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Request {
pub model: Model,
pub prompt: String,
}
///Available model identifiers
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Model {
Gpt4,
Gpt35Turbo,
Claude3Opus,
/// Custom or unknown model identifier
Custom(String),
}
impl<'de> serde::Deserialize<'de> for Model {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let value = String::deserialize(deserializer)?;
match value.as_str() {
"gpt-4" => Ok(Model::Gpt4),
"gpt-3.5-turbo" => Ok(Model::Gpt35Turbo),
"claude-3-opus" => Ok(Model::Claude3Opus),
_ => Ok(Model::Custom(value)),
}
}
}
impl serde::Serialize for Model {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
let value = match self {
Model::Gpt4 => "gpt-4",
Model::Gpt35Turbo => "gpt-3.5-turbo",
Model::Claude3Opus => "claude-3-opus",
Model::Custom(s) => s.as_str(),
};
serializer.serialize_str(value)
}
}