Skip to main content

stakai/providers/openai/
runtime.rs

1//! Shared OpenAI runtime profile types.
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct OfficialBackendProfile {
5    pub base_url: String,
6}
7
8#[derive(Debug, Clone, PartialEq, Eq)]
9pub struct CompatibleBackendProfile {
10    pub base_url: String,
11}
12
13#[derive(Debug, Clone, PartialEq, Eq)]
14pub struct CodexBackendProfile {
15    pub base_url: String,
16    pub originator: String,
17    pub chatgpt_account_id: String,
18}
19
20#[derive(Debug, Clone, PartialEq, Eq)]
21pub enum OpenAIBackendProfile {
22    Official(OfficialBackendProfile),
23    Codex(CodexBackendProfile),
24    Compatible(CompatibleBackendProfile),
25}
26
27impl OpenAIBackendProfile {
28    pub fn base_url(&self) -> &str {
29        match self {
30            Self::Official(profile) => &profile.base_url,
31            Self::Codex(profile) => &profile.base_url,
32            Self::Compatible(profile) => &profile.base_url,
33        }
34    }
35}