mint_cli/output/
args.rs

1use clap::{Args, ValueEnum};
2
3#[derive(Copy, Clone, Debug, Eq, PartialEq, ValueEnum)]
4pub enum OutputFormat {
5    Hex,
6    Mot,
7}
8
9#[derive(Args, Debug, Clone)]
10pub struct OutputArgs {
11    #[arg(
12        short = 'o',
13        long,
14        value_name = "DIR",
15        default_value = "out",
16        help = "Output directory"
17    )]
18    pub out: String,
19
20    #[arg(
21        long,
22        value_name = "STR",
23        default_value = "",
24        help = "Optional prefix to prepend to each block name in output filename"
25    )]
26    pub prefix: String,
27
28    #[arg(
29        long,
30        value_name = "STR",
31        default_value = "",
32        help = "Optional suffix to append to each block name in output filename"
33    )]
34    pub suffix: String,
35
36    #[arg(
37        long,
38        value_name = "N",
39        default_value_t = 32u16,
40        value_parser = clap::value_parser!(u16).range(1..=64),
41        help = "Number of bytes per HEX data record (1..=64)",
42    )]
43    pub record_width: u16,
44
45    #[arg(
46        long,
47        value_enum,
48        default_value_t = OutputFormat::Hex,
49        help = "Output format: hex or mot",
50    )]
51    pub format: OutputFormat,
52
53    #[arg(long, help = "Emit a single combined file instead of one per block")]
54    pub combined: bool,
55
56    #[arg(long, help = "Show detailed build statistics")]
57    pub stats: bool,
58
59    #[arg(long, help = "Suppress all output except errors")]
60    pub quiet: bool,
61}