1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
//- // Copyright 2017, 2018 The proptest developers // // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Defines the `Arbitrary` trait and related free functions //! and type aliases. //! //! See the [`Arbitrary`] trait for more information. //! //! [`Arbitrary`]: trait.Arbitrary.html use crate::strategy::statics; use crate::strategy::{Map, Strategy}; //============================================================================== // Trait and impls //============================================================================== mod traits; #[macro_use] pub mod functor; #[macro_use] mod macros; mod arrays; mod primitives; mod sample; mod tuples; mod _core; #[cfg(any(feature = "std", feature = "alloc"))] mod _alloc; #[cfg(feature = "std")] mod _std; pub use self::traits::*; //============================================================================== // SMapped + Mapped aliases to make documentation clearer. //============================================================================== pub(crate) type SFnPtrMap<S, O> = statics::Map<S, fn(<S as Strategy>::Value) -> O>; /// A static map from a strategy of `I` to `O`. /// /// # Stability /// /// This is provided to make documentation more readable. /// Do not rely on it existing in your own code. pub type SMapped<I, O> = statics::Map<StrategyFor<I>, fn(I) -> O>; /// A normal map from a strategy of `I` to `O`. /// /// # Stability /// /// This is provided to make documentation more readable. /// Do not rely on it existing in your own code. pub type Mapped<I, O> = Map<StrategyFor<I>, fn(I) -> O>;