systemprompt_models/profile/providers/
protocol.rs1use serde::{Deserialize, Serialize};
11
12#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, schemars::JsonSchema)]
14pub enum WireProtocol {
15 #[serde(rename = "anthropic")]
16 Anthropic,
17 #[serde(rename = "openai-chat", alias = "openai_chat", alias = "openai")]
18 OpenAiChat,
19 #[serde(rename = "openai-responses", alias = "openai_responses")]
20 OpenAiResponses,
21 #[serde(rename = "gemini")]
22 Gemini,
23}
24
25impl WireProtocol {
26 #[must_use]
28 pub const fn as_tag(self) -> &'static str {
29 match self {
30 Self::Anthropic => "anthropic",
31 Self::OpenAiChat => "openai-chat",
32 Self::OpenAiResponses => "openai-responses",
33 Self::Gemini => "gemini",
34 }
35 }
36}
37
38impl std::fmt::Display for WireProtocol {
39 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
40 f.write_str(self.as_tag())
41 }
42}