Skip to content

Commit cd2a9fa

Browse files
committed
refactor(usage_md): rename to reject_redundant_aliases, use pipe-trait, revert to match
- Rename check_visible_aliases to reject_redundant_aliases - Use pipe-trait to flatten nested constructor and Err calls - Revert cli/usage_md.rs back to match pattern https://claude.ai/code/session_01TSnvxN1HBwwzhxfFShWAQ5
1 parent 197d27a commit cd2a9fa

2 files changed

Lines changed: 17 additions & 18 deletions

File tree

cli/usage_md.rs

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

33
fn main() {
4-
if let Err(error) = run() {
5-
eprintln!("error: {error}");
6-
std::process::exit(1);
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+
}
710
}
811
}
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: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use clap::builder::PossibleValue;
33
use clap::{Arg, ArgAction, Command, CommandFactory};
44
use derive_more::{Display, Error};
55
use itertools::Itertools;
6+
use pipe_trait::Pipe;
67
use std::borrow::Cow;
78

89
/// Error produced when generating the usage Markdown.
@@ -20,7 +21,7 @@ pub enum RenderUsageMdError {
2021
/// Renders a Markdown reference page for `pdu`'s CLI.
2122
pub fn render_usage_md() -> Result<String, RenderUsageMdError> {
2223
let mut command: Command = Args::command();
23-
check_visible_aliases(&command)?;
24+
reject_redundant_aliases(&command)?;
2425
let mut out = String::new();
2526

2627
let usage = command.render_usage().to_string();
@@ -247,29 +248,30 @@ fn ensure_ends_with_punctuation(line: &str) -> Cow<'_, str> {
247248
}
248249
}
249250

250-
/// Checks that no argument has a visible alias that duplicates its own primary flag name.
251+
/// Rejects any argument whose visible alias duplicates its own primary flag name.
251252
///
252253
/// A visible alias matching the argument's own long name, or a visible short alias
253254
/// matching its own short flag, is a coding mistake that produces redundant output in
254255
/// USAGE.md.
255-
fn check_visible_aliases(command: &Command) -> Result<(), RenderUsageMdError> {
256+
fn reject_redundant_aliases(command: &Command) -> Result<(), RenderUsageMdError> {
256257
for arg in command.get_arguments() {
257258
if let Some(primary_long) = arg.get_long() {
258259
for alias in arg.get_visible_aliases().unwrap_or_default() {
259260
if alias == primary_long {
260-
return Err(RenderUsageMdError::RedundantVisibleLongAlias(
261-
primary_long.to_owned(),
262-
));
261+
return primary_long
262+
.to_owned()
263+
.pipe(RenderUsageMdError::RedundantVisibleLongAlias)
264+
.pipe(Err);
263265
}
264266
}
265267
}
266268

267269
if let Some(primary_short) = arg.get_short() {
268270
for alias in arg.get_visible_short_aliases().unwrap_or_default() {
269271
if alias == primary_short {
270-
return Err(RenderUsageMdError::RedundantVisibleShortAlias(
271-
primary_short,
272-
));
272+
return primary_short
273+
.pipe(RenderUsageMdError::RedundantVisibleShortAlias)
274+
.pipe(Err);
273275
}
274276
}
275277
}

0 commit comments

Comments
 (0)