Trait proptest_arbitrary::Arbitrary [] [src]

pub trait Arbitrary<'a>: Sized + Debug {
    type Parameters: Default;
    type Strategy: Strategy<Value = Self::ValueTree>;
    type ValueTree: ValueTree<Value = Self>;
    fn arbitrary_with(args: Self::Parameters) -> Self::Strategy;

    fn arbitrary() -> Self::Strategy { ... }
}

Arbitrary determines a canonical Strategy for the implementing type.

It provides the function arbitrary which generates a Strategy for producing arbitrary values of the implementing type (Self).

This trait is the equivalent of Haskell QuickCheck's implementation of Arbitrary. In this interpretation of Arbitray, Strategy is the equivalent of the Gen monad.

Arbitrary currently only works for types which represent owned data as opposed to borrowed data. This is a fundamental restriction of proptest which may be lifted in the future as the generic associated types (GAT) feature of Rust is implemented and stabilized.

Associated Types

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.

The type of Strategy used to generate values of type Self.

The type of ValueTree used for Self's Strategy.

NOTE: This type should NOT be relied upon outside of this crate other than for implementing Arbitrary for other types.

Required Methods

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args.

If you wish to use the default() arguments, use arbitrary instead.

Provided Methods

Generates a Strategy for producing arbitrary values of type the implementing type (Self).

Calling this for the type X is the equivalent of using X::arbitrary_with(Default::default()).

Implementations on Foreign Types

impl<'a> Arbitrary<'a> for bool
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for f32
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for f64
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for i8
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for i16
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for i32
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for i64
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for isize
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for u8
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for u16
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for u32
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for u64
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for usize
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for char
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for EscapeDefault
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Box<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Copy> Arbitrary<'a> for Cell<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for RefCell<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for UnsafeCell<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for BorrowError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for BorrowMutError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for EscapeDebug
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for EscapeDefault
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for EscapeUnicode
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ParseCharError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for DecodeUtf16Error
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Reverse<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Ordering
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Vec<A>
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Box<[A]>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Rc<[A]>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Arc<[A]>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for VecDeque<A>
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for LinkedList<A>
[src]

impl<'a, A: Arbitrary<'a> + Ord> Arbitrary<'a> for BTreeSet<A>
[src]

impl<'a, A: Arbitrary<'a> + Ord> Arbitrary<'a> for BinaryHeap<A>
[src]

impl<'a, A: Arbitrary<'a> + Hash + Eq> Arbitrary<'a> for HashSet<A>
[src]

impl<'a, A: Arbitrary<'a> + Hash + Eq, B: Arbitrary<'a>> Arbitrary<'a> for HashMap<A, B>
[src]

impl<'a, A, B> Arbitrary<'a> for BTreeMap<A, B> where
    A: Arbitrary<'static> + Ord,
    B: Arbitrary<'static>,
    StrategyFor<A>: 'static,
    StrategyFor<B>: 'static, 
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Ord> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Ord> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Hash + Eq> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Hash + Eq, B: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A, B>
[src]

[src]

[src]

impl<'a, A, B> Arbitrary<'a> for IntoIter<A, B> where
    A: Arbitrary<'static> + Ord,
    B: Arbitrary<'static>,
    StrategyFor<A>: 'static,
    StrategyFor<B>: 'static, 
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Clone> Arbitrary<'a> for Bound<A> where
    ParamsType<'a, A>: Clone
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Args
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ArgsOs
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Vars
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for VarsOs
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for JoinPathsError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for VarError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for CString
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for OsString
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Box<CStr>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Box<OsStr>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for FromBytesWithNulError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for IntoStringError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Error
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for DirBuilder
[src]

[src]

[src]

impl<'a, H: Default + Hasher> Arbitrary<'a> for BuildHasherDefault<H>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for DefaultHasher
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for RandomState
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Read> Arbitrary<'a> for BufReader<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Write> Arbitrary<'a> for BufWriter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Write> Arbitrary<'a> for LineWriter<A>
[src]

[src]

[src]

impl<'a, A: Read + Arbitrary<'a>, B: Read + Arbitrary<'a>> Arbitrary<'a> for Chain<A, B>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Cursor<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Empty
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Sink
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Stderr
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Stdin
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Stdout
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + BufRead> Arbitrary<'a> for Lines<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Repeat
[src]

[src]

[src]

impl<'a, A: BufRead + Arbitrary<'a>> Arbitrary<'a> for Split<A>
[src]

[src]

[src]

impl<'a, A: Read + Arbitrary<'a>> Arbitrary<'a> for Take<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ErrorKind
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for SeekFrom
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Error
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Once<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Clone> Arbitrary<'a> for Repeat<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator<Item = &'a T>, T: 'a + Clone> Arbitrary<'a> for Cloned<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator + Clone> Arbitrary<'a> for Cycle<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator> Arbitrary<'a> for Enumerate<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator> Arbitrary<'a> for Fuse<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator<Item = T>, T: Debug> Arbitrary<'a> for Peekable<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + DoubleEndedIterator> Arbitrary<'a> for Rev<A>
[src]

[src]

[src]

impl<'a, A> Arbitrary<'a> for Empty<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator, B: Arbitrary<'a> + Iterator> Arbitrary<'a> for Zip<A, B>
[src]

[src]

[src]

impl<'a, T, A: Arbitrary<'a> + Iterator<Item = T>, B: Arbitrary<'a> + Iterator<Item = T>> Arbitrary<'a> for Chain<A, B>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator> Arbitrary<'a> for Skip<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a> + Iterator> Arbitrary<'a> for Take<A>
[src]

[src]

[src]

impl<'a, T: ?Sized> Arbitrary<'a> for PhantomData<T>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Discriminant<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for ManuallyDrop<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for AddrParseError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Ipv4Addr
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Ipv6Addr
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for SocketAddrV4
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for SocketAddrV6
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for IpAddr
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Shutdown
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for SocketAddr
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ParseFloatError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ParseIntError
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Wrapping<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for FpCategory
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for RangeFull
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for RangeFrom<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for RangeTo<A>
[src]

[src]

[src]

impl<'a, A: PartialOrd + Arbitrary<'a>> Arbitrary<'a> for Range<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Option<A>
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for AssertUnwindSafe<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for StripPrefixError
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Rc<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>, B: Arbitrary<'a>> Arbitrary<'a> for Result<A, B>
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for IntoIter<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for ParseBoolError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Utf8Error
[src]

impl<'a> Arbitrary<'a> for String
[src]

[src]

Safety

This implementation panics if the input is not a valid regex proptest can handle.

[src]

impl<'a> Arbitrary<'a> for Box<str>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Rc<str>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Arc<str>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for FromUtf16Error
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for FromUtf8Error
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Arc<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for Mutex<A>
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for RwLock<A>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Barrier
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for BarrierWaitResult
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Condvar
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Once
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for WaitTimeoutResult
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for AtomicBool
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for AtomicIsize
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for AtomicUsize
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Ordering
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for RecvError
[src]

[src]

[src]

impl<'a, T: Arbitrary<'a>> Arbitrary<'a> for SendError<T>
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for RecvTimeoutError
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for TryRecvError
[src]

[src]

[src]

impl<'a, P: Clone + Default, T: Arbitrary<'a, Parameters = P>> Arbitrary<'a> for TrySendError<T>
[src]

[src]

[src]

impl<'a, A> Arbitrary<'a> for (Sender<A>, Receiver<A>)
[src]

[src]

[src]

impl<'a, A: Debug> Arbitrary<'a> for (Sender<A>, IntoIter<A>)
[src]

[src]

[src]

impl<'a, A> Arbitrary<'a> for (SyncSender<A>, Receiver<A>)
[src]

[src]

[src]

impl<'a, A: Debug> Arbitrary<'a> for (SyncSender<A>, IntoIter<A>)
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Builder
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Duration
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for Instant
[src]

[src]

[src]

impl<'a> Arbitrary<'a> for SystemTime
[src]

[src]

[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 1]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 2]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 3]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 4]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 5]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 6]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 7]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 8]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 9]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 10]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 11]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 12]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 13]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 14]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 15]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 16]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 17]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 18]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 19]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 20]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 21]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 22]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 23]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 24]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 25]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 26]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 27]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 28]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 29]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 30]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 31]
[src]

impl<'a, A: Arbitrary<'a>> Arbitrary<'a> for [A; 32]
[src]

impl<'a> Arbitrary<'a> for ()
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>> Arbitrary<'a> for (T0,)
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>> Arbitrary<'a> for (T0, T1)
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2)
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3)
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4)
[src]

[src]

[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>, T5: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4, T5)
[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>, T5: Arbitrary<'a>, T6: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4, T5, T6)
[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>, T5: Arbitrary<'a>, T6: Arbitrary<'a>, T7: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4, T5, T6, T7)
[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>, T5: Arbitrary<'a>, T6: Arbitrary<'a>, T7: Arbitrary<'a>, T8: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
[src]

impl<'a, T0: Arbitrary<'a>, T1: Arbitrary<'a>, T2: Arbitrary<'a>, T3: Arbitrary<'a>, T4: Arbitrary<'a>, T5: Arbitrary<'a>, T6: Arbitrary<'a>, T7: Arbitrary<'a>, T8: Arbitrary<'a>, T9: Arbitrary<'a>> Arbitrary<'a> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
[src]

Implementors