openapi_nexus_common/
generator.rs1use clap::ValueEnum;
4use serde::{Deserialize, Serialize};
5
6use crate::language::Language;
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, ValueEnum)]
10pub enum GeneratorType {
11 #[serde(rename = "typescript-fetch")]
13 #[value(name = "typescript-fetch")]
14 TypeScriptFetch,
15 #[serde(rename = "go-http")]
17 #[value(name = "go-http")]
18 GoHttp,
19}
20
21serde_plain::derive_display_from_serialize!(GeneratorType);
22serde_plain::derive_fromstr_from_deserialize!(GeneratorType);
23
24impl GeneratorType {
25 pub fn language(&self) -> Language {
27 match self {
28 GeneratorType::TypeScriptFetch => Language::TypeScript,
29 GeneratorType::GoHttp => Language::Go,
30 }
31 }
32
33 pub fn framework(&self) -> String {
35 match self {
36 GeneratorType::TypeScriptFetch => "fetch".to_string(),
37 GeneratorType::GoHttp => "http".to_string(),
38 }
39 }
40}