diff --git a/xtask/src/tasks/generate_docs/admin_commands.rs b/xtask/src/tasks/generate_docs/admin_commands.rs index 99117da2..1a20377e 100644 --- a/xtask/src/tasks/generate_docs/admin_commands.rs +++ b/xtask/src/tasks/generate_docs/admin_commands.rs @@ -38,26 +38,23 @@ struct Subcommand { fn flatten_subcommands(command: &Command) -> Vec { - let mut subcommands = Vec::new(); - let mut name_stack = Vec::new(); fn flatten( subcommands: &mut Vec, - stack: &mut Vec, + name_stack: &mut Vec, command: &Command ) { - let depth = stack.len(); - stack.push(command.get_name().to_owned()); + let depth = name_stack.len(); + name_stack.push(command.get_name().to_owned()); // do not include the root command if depth > 0 { - let name = stack.join(" "); + let name = name_stack.join(" "); let description = command .get_long_about() .or_else(|| command.get_about()) - .map(|about| about.to_string()) - .unwrap_or("_(no description)_".to_owned()); + .map_or_else(|| "_(no description)_".to_owned(), ToString::to_string); subcommands.push( Subcommand { @@ -69,12 +66,15 @@ fn flatten_subcommands(command: &Command) -> Vec { } for command in command.get_subcommands() { - flatten(subcommands, stack, command); + flatten(subcommands, name_stack, command); } - stack.pop(); + name_stack.pop(); } + let mut subcommands = Vec::new(); + let mut name_stack = Vec::new(); + flatten(&mut subcommands, &mut name_stack, command); subcommands diff --git a/xtask/src/tasks/generate_docs/mod.rs b/xtask/src/tasks/generate_docs/mod.rs index 4b2b1a2f..1df34dc4 100644 --- a/xtask/src/tasks/generate_docs/mod.rs +++ b/xtask/src/tasks/generate_docs/mod.rs @@ -17,7 +17,7 @@ struct FileQueue { impl FileQueue { fn write(self, root: &Path, dry_run: bool) -> std::io::Result<()> { - for (path, contents) in self.queue.into_iter() { + for (path, contents) in self.queue { let path = root.join(&path); eprintln!("Writing {}", path.display()); @@ -35,9 +35,7 @@ impl FileOutput for FileQueue { assert!(path.is_relative(), "path must be relative"); assert!(path.extension().is_some(), "path must not point to a directory"); - if self.queue.contains_key(&path) { - panic!("attempted to create an already created file {}", path.display()); - } + assert!(!self.queue.contains_key(&path), "attempted to create an already created file {}", path.display()); self.queue.insert(path, contents); } @@ -49,6 +47,7 @@ pub(crate) struct Args { root: Option, } +#[expect(clippy::needless_pass_by_value)] pub(super) fn run(common_args: crate::Args, task_args: Args) -> TaskResult<()> { let mut queue = FileQueue::default();