实现Index析构自动保存:Drop for Index

This commit is contained in:
mrbeanc
2023-12-21 17:12:03 +08:00
parent 1d6e648120
commit ffefd7f981
3 changed files with 15 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ use std::collections::HashMap;
use std::fs;
use std::path::{Path, PathBuf};
use std::time::SystemTime;
use colored::Colorize;
// 文件元数据结构
#[derive(Serialize, Deserialize, Debug, Clone)]
@@ -65,7 +66,8 @@ impl Index {
// 删除文件
pub fn remove(&mut self, path: &Path) {
self.entries.remove(path);
let path = Index::preprocess_path(&path);
self.entries.remove(&path);
}
// 获取文件元数据
@@ -172,6 +174,14 @@ impl Index {
}
}
/// 析构自动保存
impl Drop for Index {
fn drop(&mut self) {
self.save();
println!("{}", "Index auto saved".bright_green());
}
}
#[cfg(test)]
mod tests {
use super::*;