3 个版本 (破坏性更新)
0.3.0 | 2024年7月29日 |
---|---|
0.2.0 | 2024年7月13日 |
0.1.0 | 2023年5月21日 |
#379 在 文件系统
5,271 每月下载量
在 4 个Crates中使用(通过 breezyshim)
20KB
383 代码行
机会式脏文件追踪器
此库提供了一种简单的方法来跟踪目录中的脏文件。它使用 notify
crate 来监视文件系统事件,并跟踪已更改的文件。
如果底层文件系统不支持监视文件系统事件,或者要监视的文件太多,追踪器将放弃并返回 State::Unknown
。
示例
use dirty_tracker::{State, DirtyTracker};
let td = tempfile::tempdir().unwrap();
let mut tracker = DirtyTracker::new(td.path()).unwrap();
assert_eq!(tracker.state(), State::Clean);
assert!(tracker.paths().unwrap().is_empty());
// Modify a file in the directory.
std::fs::write(td.path().join("file"), b"hello").unwrap();
assert_eq!(tracker.state(), State::Dirty);
assert_eq!(tracker.paths(), Some(&maplit::hashset![td.path().join("file")]));
lib.rs
:
机会式脏文件追踪器
此库提供了一种简单的方法来跟踪目录中的脏文件。它使用 notify
crate 来监视文件系统事件,并跟踪已更改的文件。
如果底层文件系统不支持监视文件系统事件,或者要监视的文件太多,追踪器将放弃并返回 State::Unknown
。
示例
use dirty_tracker::{State, DirtyTracker};
let td = tempfile::tempdir().unwrap();
let mut tracker = DirtyTracker::new(td.path()).unwrap();
assert_eq!(tracker.state(), State::Clean);
assert!(tracker.paths().unwrap().is_empty());
// Modify a file in the directory.
std::fs::write(td.path().join("file"), b"hello").unwrap();
assert_eq!(tracker.state(), State::Dirty);
assert_eq!(tracker.paths(), Some(&maplit::hashset![td.path().join("file")]));
依赖项
~2–11MB
~129K SLoC