---
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, Default)]
pub struct Request {
#[serde(skip_serializing_if = "Option::is_none")]
pub model: Option<Model>,
}
///The model that will complete your prompt.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Model {
Claude35SonnetLatest,
Claude35HaikuLatest,
/// 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() {
"claude-3-5-sonnet-latest" => Ok(Model::Claude35SonnetLatest),
"claude-3-5-haiku-latest" => Ok(Model::Claude35HaikuLatest),
_ => Ok(Model::Custom(value)),
}
}
}
impl serde::Serialize for Model {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.as_str())
}
}
impl Model {
pub fn as_str(&self) -> &str {
match self {
Model::Claude35SonnetLatest => "claude-3-5-sonnet-latest",
Model::Claude35HaikuLatest => "claude-3-5-haiku-latest",
Model::Custom(s) => s.as_str(),
}
}
}
impl ::std::fmt::Display for Model {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
f.write_str(self.as_str())
}
}
impl AsRef<str> for Model {
fn as_ref(&self) -> &str {
self.as_str()
}
}