3 个版本 (破坏性更新)

0.3.0 2024年7月29日
0.2.0 2024年7月13日
0.1.0 2023年5月21日

#379文件系统

Download history 639/week @ 2024-07-11 554/week @ 2024-07-18 2024/week @ 2024-07-25 1396/week @ 2024-08-01 1253/week @ 2024-08-08 569/week @ 2024-08-15

5,271 每月下载量
4 个Crates中使用(通过 breezyshim

Apache-2.0

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