openapi-to-rust 0.2.1

Generate strongly-typed Rust structs, HTTP clients, and SSE streaming clients from OpenAPI 3.1 specifications
Documentation
---
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)
    }
}