From 4472f3db945ecb363d3484ab4336592a6403be09 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Fri, 29 Aug 2025 14:28:57 -0300 Subject: [PATCH] feat: add argument validation for delete mode Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) --- src/args.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/args.rs b/src/args.rs index 332c2d0..cf5f19b 100644 --- a/src/args.rs +++ b/src/args.rs @@ -162,3 +162,24 @@ impl FromStr for NumberOrString { } } +impl Args { + /// Validate the arguments based on the selected mode + pub fn validate(&self) -> Result<(), String> { + // Check if --delete is used and ids_or_tags is empty + if self.mode.delete && self.ids_or_tags.is_empty() { + return Err("At least one ID is required when using --delete".to_string()); + } + + // Check if --delete is used and any of the ids_or_tags are tags (strings) + if self.mode.delete { + for item in &self.ids_or_tags { + if let NumberOrString::Str(_) = item { + return Err("Tags are not supported for --delete, only IDs".to_string()); + } + } + } + + Ok(()) + } +} +