Struct change_detection::ChangeDetection [−][src]
pub struct ChangeDetection;
A change detection entry point.
Creates a builder to generate change detection instructions.
Examples
use change_detection::ChangeDetection; fn main() { ChangeDetection::path("src/hello.c").generate(); }
This is the same as just write:
fn main() { println!("cargo:rerun-if-changed=src/hello.c"); }
You can collect resources from a path:
fn main() { ChangeDetection::path("some_path").generate(); }
To chain multiple directories and files:
fn main() { ChangeDetection::path("src/hello.c") .path("static") .path("build.rs") .generate(); }
Implementations
impl ChangeDetection
[src]
pub fn path<P>(path: P) -> ChangeDetectionBuilder where
P: AsRef<Path>,
[src]
P: AsRef<Path>,
Collects change detection instructions from a path
.
A path
can be a single file or a directory.
Examples:
To generate change instructions for the directory with the name static
:
ChangeDetection::path("static").generate();
To generate change instructions for the file with the name build.rs
:
ChangeDetection::path("build.rs").generate();
pub fn path_include<P, F>(path: P, filter: F) -> ChangeDetectionBuilder where
P: AsRef<Path>,
F: PathMatcher + 'static,
[src]
P: AsRef<Path>,
F: PathMatcher + 'static,
Collects change detection instructions from a path
applying include filter
.
A path
can be a single file or a directory.
Examples:
To generate change instructions for the directory with the name static
but only for files ending with b
:
ChangeDetection::path_include("static", |path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().ends_with("b")) .unwrap_or(false) }).generate();
pub fn path_exclude<P, F>(path: P, filter: F) -> ChangeDetectionBuilder where
P: AsRef<Path>,
F: PathMatcher + 'static,
[src]
P: AsRef<Path>,
F: PathMatcher + 'static,
Collects change detection instructions from a path
applying exclude filter
.
A path
can be a single file or a directory.
Examples:
To generate change instructions for the directory with the name static
but without files ending with b
:
ChangeDetection::path_exclude("static", |path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().ends_with("b")) .unwrap_or(false) }).generate();
pub fn path_filter<P, F1, F2>(
path: P,
include: F1,
exclude: F2
) -> ChangeDetectionBuilder where
P: AsRef<Path>,
F1: PathMatcher + 'static,
F2: PathMatcher + 'static,
[src]
path: P,
include: F1,
exclude: F2
) -> ChangeDetectionBuilder where
P: AsRef<Path>,
F1: PathMatcher + 'static,
F2: PathMatcher + 'static,
Collects change detection instructions from a path
applying include
and exclude
filters.
A path
can be a single file or a directory.
Examples:
To generate change instructions for the directory with the name static
including only files starting with a
but without files ending with b
:
ChangeDetection::path_filter("static", |path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().starts_with("a")) .unwrap_or(false) }, |path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().ends_with("b")) .unwrap_or(false) }).generate();
pub fn include<F>(filter: F) -> ChangeDetectionBuilder where
F: PathMatcher + 'static,
[src]
F: PathMatcher + 'static,
Applies a global include
filter to all paths.
Examples:
To included only files starting with a
for paths static1
, static2
and static3
:
ChangeDetection::include(|path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().starts_with("a")) .unwrap_or(false) }) .path("static1") .path("static2") .path("static3") .generate();
pub fn exclude<F>(filter: F) -> ChangeDetectionBuilder where
F: PathMatcher + 'static,
[src]
F: PathMatcher + 'static,
Applies a global exclude
filter to all paths.
Examples:
To exclude files starting with a
for paths static1
, static2
and static3
:
ChangeDetection::exclude(|path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().starts_with("a")) .unwrap_or(false) }) .path("static1") .path("static2") .path("static3") .generate();
pub fn filter<F1, F2>(include: F1, exclude: F2) -> ChangeDetectionBuilder where
F1: PathMatcher + 'static,
F2: PathMatcher + 'static,
[src]
F1: PathMatcher + 'static,
F2: PathMatcher + 'static,
Applies a global include
and exclude
filters to all paths.
Examples:
To include files starting with a
for paths static1
, static2
and static3
, but whose names do not end in b
:
ChangeDetection::filter(|path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().starts_with("a")) .unwrap_or(false) }, |path: &std::path::Path| { path.file_name() .map(|filename| filename.to_str().unwrap().ends_with("b")) .unwrap_or(false) }) .path("static1") .path("static2") .path("static3") .generate();
Auto Trait Implementations
impl RefUnwindSafe for ChangeDetection
impl Send for ChangeDetection
impl Sync for ChangeDetection
impl Unpin for ChangeDetection
impl UnwindSafe for ChangeDetection
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,