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/license/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 //! Composable first-order predicate trait. 10 //! 11 //! This library implements an interface to "predicates" - boolean-valued 12 //! functions of one argument. This allows combinatorial logic to be created and 13 //! assembled at runtime and then used one or more times for evaluating values. 14 //! This sort of object is really useful when creating filters and checks that 15 //! can be changed at runtime with user interaction - it allows a clean 16 //! separation of concerns where the configuration code can be used to build up 17 //! a predicate, and then that predicate can be given to the code that does the 18 //! actual filtering without the filtering code knowing anything about user 19 //! configuration. See the examples for how this can work. 20 21 #![warn(missing_docs, missing_debug_implementations)] 22 23 mod core; 24 pub use crate::core::*; 25 pub mod reflection; 26