Skip to content

Commit 197d27a

Browse files
committed
refactor(usage_md): address review feedback on error type and callsites
- Split RedundantVisibleAlias into RedundantVisibleLongAlias(String) and RedundantVisibleShortAlias(char), moving message into #[display] - Rename validate_no_redundant_visible_aliases to check_visible_aliases - Use if-let-Err pattern in cli/usage_md.rs to match lib.rs style - Simplify test to use .unwrap() instead of .expect() - Fix doc comment to use plain English instead of backtick-wrapped flags https://claude.ai/code/session_01TSnvxN1HBwwzhxfFShWAQ5
1 parent 449bf44 commit 197d27a

3 files changed

Lines changed: 27 additions & 21 deletions

File tree

cli/usage_md.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
use parallel_disk_usage::usage_md::render_usage_md;
22

33
fn main() {
4-
match render_usage_md() {
5-
Ok(content) => println!("{}", content.trim_end()),
6-
Err(error) => {
7-
eprintln!("error: {error}");
8-
std::process::exit(1);
9-
}
4+
if let Err(error) = run() {
5+
eprintln!("error: {error}");
6+
std::process::exit(1);
107
}
118
}
9+
10+
fn run() -> Result<(), parallel_disk_usage::usage_md::RenderUsageMdError> {
11+
let content = render_usage_md()?;
12+
println!("{}", content.trim_end());
13+
Ok(())
14+
}

src/usage_md.rs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@ use std::borrow::Cow;
99
#[derive(Debug, Display, Error)]
1010
#[non_exhaustive]
1111
pub enum RenderUsageMdError {
12-
/// A `visible_alias` or `visible_short_alias` duplicates the argument's own flag name.
13-
#[display("redundant visible alias: {_0}")]
14-
RedundantVisibleAlias(#[error(not(source))] String),
12+
/// A `visible_alias` duplicates the argument's own long flag name.
13+
#[display("--{_0} has a visible_alias that duplicates its own flag name")]
14+
RedundantVisibleLongAlias(#[error(not(source))] String),
15+
/// A `visible_short_alias` duplicates the argument's own short flag name.
16+
#[display("-{_0} has a visible_short_alias that duplicates its own flag name")]
17+
RedundantVisibleShortAlias(#[error(not(source))] char),
1518
}
1619

1720
/// Renders a Markdown reference page for `pdu`'s CLI.
1821
pub fn render_usage_md() -> Result<String, RenderUsageMdError> {
1922
let mut command: Command = Args::command();
20-
validate_no_redundant_visible_aliases(&command)?;
23+
check_visible_aliases(&command)?;
2124
let mut out = String::new();
2225

2326
let usage = command.render_usage().to_string();
@@ -246,27 +249,27 @@ fn ensure_ends_with_punctuation(line: &str) -> Cow<'_, str> {
246249

247250
/// Checks that no argument has a visible alias that duplicates its own primary flag name.
248251
///
249-
/// A `visible_alias` matching the argument's own `--long` name, or a `visible_short_alias`
250-
/// matching its own `-short` flag, is a coding mistake that produces redundant output in
251-
/// USAGE.md. This function detects such mistakes and terminates the process.
252-
fn validate_no_redundant_visible_aliases(command: &Command) -> Result<(), RenderUsageMdError> {
252+
/// A visible alias matching the argument's own long name, or a visible short alias
253+
/// matching its own short flag, is a coding mistake that produces redundant output in
254+
/// USAGE.md.
255+
fn check_visible_aliases(command: &Command) -> Result<(), RenderUsageMdError> {
253256
for arg in command.get_arguments() {
254257
if let Some(primary_long) = arg.get_long() {
255258
for alias in arg.get_visible_aliases().unwrap_or_default() {
256259
if alias == primary_long {
257-
return Err(RenderUsageMdError::RedundantVisibleAlias(format!(
258-
"--{primary_long} has visible_alias \"{alias}\" that duplicates its own flag name",
259-
)));
260+
return Err(RenderUsageMdError::RedundantVisibleLongAlias(
261+
primary_long.to_owned(),
262+
));
260263
}
261264
}
262265
}
263266

264267
if let Some(primary_short) = arg.get_short() {
265268
for alias in arg.get_visible_short_aliases().unwrap_or_default() {
266269
if alias == primary_short {
267-
return Err(RenderUsageMdError::RedundantVisibleAlias(format!(
268-
"-{primary_short} has visible_short_alias '{alias}' that duplicates its own flag name",
269-
)));
270+
return Err(RenderUsageMdError::RedundantVisibleShortAlias(
271+
primary_short,
272+
));
270273
}
271274
}
272275
}

tests/sync_usage_md.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use parallel_disk_usage::usage_md::render_usage_md;
1111

1212
#[test]
1313
fn usage_md() {
14-
let actual = render_usage_md().expect("render_usage_md failed");
14+
let actual = render_usage_md().unwrap();
1515
let expected = include_str!("../USAGE.md");
1616
assert!(
1717
actual.trim_end() == expected.trim_end(),

0 commit comments

Comments
 (0)