1 // Copyright (c) 2018 The predicates-rs Project Developers.
2 //
3 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
4 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
5 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6 // option. This file may not be copied, modified, or distributed
7 // except according to those terms.
8 
9 //! Module that contains the essentials for working with predicates.
10 
11 pub use crate::boolean::PredicateBooleanExt;
12 pub use crate::boxed::PredicateBoxExt;
13 pub use crate::name::PredicateNameExt;
14 pub use crate::path::PredicateFileContentExt;
15 pub use crate::str::PredicateStrExt;
16 pub use crate::Predicate;
17 
18 /// Predicate factories
19 pub mod predicate {
20     // primitive `Predicate` types
21     pub use crate::constant::{always, never};
22     pub use crate::function::function;
23     pub use crate::iter::{in_hash, in_iter};
24     pub use crate::ord::{eq, ge, gt, le, lt, ne};
25 
26     /// `str` Predicate factories
27     ///
28     /// This module contains predicates specific to string handling.
29     pub mod str {
30         pub use crate::str::is_empty;
31         pub use crate::str::{contains, ends_with, starts_with};
32 
33         #[cfg(feature = "diff")]
34         pub use crate::str::diff;
35 
36         #[cfg(feature = "regex")]
37         pub use crate::str::is_match;
38     }
39 
40     /// `Path` Predicate factories
41     ///
42     /// This module contains predicates specific to path handling.
43     pub mod path {
44         pub use crate::path::eq_file;
45         pub use crate::path::{exists, missing};
46         pub use crate::path::{is_dir, is_file, is_symlink};
47     }
48 
49     /// `f64` Predicate factories
50     ///
51     /// This module contains predicates specific to float handling.
52     pub mod float {
53         #[cfg(feature = "float-cmp")]
54         pub use crate::float::is_close;
55     }
56 }
57