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}