sift_queue/cli/commands/
rm.rs1use crate::queue::Queue;
2use crate::RmArgs;
3use anyhow::Result;
4use std::path::PathBuf;
5
6pub fn execute(args: &RmArgs, queue_path: PathBuf) -> Result<i32> {
8 let queue = Queue::new(queue_path);
9
10 let id = match &args.id {
11 Some(ref id) => id.as_str(),
12 None => {
13 eprintln!("Error: Item ID is required");
14 return Ok(1);
15 }
16 };
17
18 match queue.remove(id)? {
19 Some(removed) => {
20 println!("{}", removed.id);
21 eprintln!("Removed item {}", removed.id);
22 Ok(0)
23 }
24 None => {
25 eprintln!("Error: Item not found: {}", id);
26 Ok(1)
27 }
28 }
29}