mutant_lib/mutant/
remove_logic.rs1use super::MutAnt;
2use crate::error::Error;
3use log::{debug, error, info, warn};
4
5pub(super) async fn delete_item(es: &MutAnt, key: &str) -> Result<(), Error> {
7 debug!("DeleteItem[{}]: Starting removal...", key);
8
9 match es.pad_manager.release_pads(key).await {
10 Ok(_) => {
11 debug!(
12 "DeleteItem[{}]: PadManager successfully released pads.",
13 key
14 );
15 }
16 Err(Error::KeyNotFound(_)) => {
17 warn!("DeleteItem[{}]: Key not found by PadManager.", key);
18 return Err(Error::KeyNotFound(key.to_string()));
19 }
20 Err(e) => {
21 error!(
22 "DeleteItem[{}]: Error releasing pads via PadManager: {}",
23 key, e
24 );
25 return Err(e);
26 }
27 }
28
29 debug!("DeleteItem[{}]: Saving updated master index...", key);
30 match es.save_master_index().await {
31 Ok(_) => {
32 debug!(
33 "DeleteItem[{}]: Successfully persisted master index removal.",
34 key
35 );
36 }
37 Err(e) => {
38 error!(
39 "DeleteItem[{}]: CRITICAL: Failed to persist master index removal: {}. State might be inconsistent.",
40 key, e
41 );
42 return Err(e);
43 }
44 }
45
46 info!("DeleteItem[{}]: Removal successful.", key);
47 Ok(())
48}