openapi_model_generator/
cli.rs1use clap::{Parser, ValueEnum};
2use std::path::PathBuf;
3
4use crate::generator::GenerateMode;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
7pub enum Mode {
8 Models,
10
11 Requests,
13
14 Responses,
16
17 All,
19}
20
21impl From<Mode> for GenerateMode {
22 fn from(mode: Mode) -> Self {
23 match mode {
24 Mode::Models => GenerateMode::MODELS,
25 Mode::Requests => GenerateMode::MODELS | GenerateMode::REQUESTS,
26 Mode::Responses => GenerateMode::MODELS | GenerateMode::RESPONSES,
27 Mode::All => GenerateMode::ALL,
28 }
29 }
30}
31
32#[derive(Parser, Debug)]
33#[command(author, version, about, long_about = None)]
34pub struct Args {
35 #[arg(short, long)]
36 pub input: PathBuf,
37
38 #[arg(short, long, default_value = "./generated")]
39 pub output: PathBuf,
40
41 #[arg(short = 'm', long, value_enum, default_value_t = Mode::All)]
43 pub mode: Mode,
44}