Crates.io | change-detection |
lib.rs | change-detection |
version | 1.2.0 |
source | src |
created_at | 2020-12-05 21:25:15.300677 |
updated_at | 2021-04-17 21:12:14.570189 |
description | A library to generate change detection instructions during build time. |
homepage | https://github.com/rust-utility/change-detection |
repository | https://github.com/rust-utility/change-detection |
max_upload_size | |
id | 319940 |
size | 24,044 |
Dual-licensed under MIT
or the UNLICENSE.
Automates task of generating change detection instructions for your static files.
https://doc.rust-lang.org/cargo/reference/build-scripts.html#change-detection
Add dependency to Cargo.toml:
[dependencies]
change-detection = "1.2"
Add a call to build.rs
:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("src/hello.c").generate();
}
This is basically the same, as just write:
fn main() {
println!("cargo:rerun-if-changed=src/hello.c");
}
You can also use a directory. For example, if your resources are in static
directory:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("static").generate();
}
One call to generate can have multiple path
components:
use change_detection::ChangeDetection;
fn main() {
ChangeDetection::path("static")
.path("another_path")
.path("build.rs")
.generate();
}
Using path-matchers
library you can specify include / exclude filters:
#[cfg(features = "glob")]
use change_detection::{path_matchers::glob, ChangeDetection};
fn main() {
#[cfg(features = "glob")]
ChangeDetection::exclude(glob("another_path/**/*.tmp").unwrap())
.path("static")
.path("another_path")
.path("build.rs")
.generate();
}
You can actual generated result with this command:
find . -name output | xargs cat