Trait Arbitrary

pub trait Arbitrary: Sized + Debug {
    type Parameters: Default;
    type Strategy: Strategy<Value = Self>;

    // Required method
    fn arbitrary_with(args: Self::Parameters) -> Self::Strategy;

    // Provided method
    fn arbitrary() -> Self::Strategy { ... }
}
Expand description

Arbitrary determines a canonical Strategy for the implementing type.

It provides the method arbitrary_with which generates a Strategy for producing arbitrary values of the implementing type (Self). In general, these strategies will produce the entire set of values possible for the type, up to some size limitation or constraints set by their parameters. When this is not desired, strategies to produce the desired values can be built by combining Strategys as described in the crate documentation.

This trait analogous to Haskell QuickCheck’s implementation of Arbitrary. In this interpretation of Arbitrary, Strategy is the equivalent of the Gen monad. Unlike in QuickCheck, Arbitrary is not a core component; types do not need to implement Arbitrary unless one wants to use any or other free functions in this module.

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.

If you do not have unique constraints on how to generate the data for your custom types, consider using the derive macro to implement Arbitrary

Required Associated Types§

type Parameters: Default

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

type Strategy: Strategy<Value = Self>

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

Required Methods§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

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§

fn arbitrary() -> Self::Strategy

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()).

This method is defined in the trait for optimization for the default if you want to do that. It is a logic error to not preserve the semantics when overriding.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl Arbitrary for Ordering

§

impl Arbitrary for FromBytesWithNulError

§

impl Arbitrary for IpAddr

§

impl Arbitrary for SocketAddr

§

impl Arbitrary for FpCategory

§

impl Arbitrary for Option<Infallible>

§

impl Arbitrary for Ordering

§

impl Arbitrary for VarError

§

impl Arbitrary for SeekFrom

§

impl Arbitrary for ErrorKind

§

impl Arbitrary for Shutdown

§

impl Arbitrary for RecvTimeoutError

§

impl Arbitrary for TryRecvError

§

impl Arbitrary for bool

§

impl Arbitrary for char

§

impl Arbitrary for f32

§

impl Arbitrary for f64

§

impl Arbitrary for i8

§

impl Arbitrary for i16

§

impl Arbitrary for i32

§

impl Arbitrary for i64

§

impl Arbitrary for i128

§

impl Arbitrary for isize

§

impl Arbitrary for u8

§

impl Arbitrary for u16

§

impl Arbitrary for u32

§

impl Arbitrary for u64

§

impl Arbitrary for u128

§

impl Arbitrary for ()

§

impl Arbitrary for usize

§

impl Arbitrary for Box<str>

§

impl Arbitrary for Box<CStr>

§

impl Arbitrary for Box<OsStr>

§

impl Arbitrary for Box<Path>

This implementation is identical to the Arbitrary implementation for PathBuf.

§

impl Arbitrary for CString

§

impl Arbitrary for IntoStringError

§

impl Arbitrary for Rc<str>

§

impl Arbitrary for Rc<Path>

This implementation is identical to the Arbitrary implementation for PathBuf.

§

impl Arbitrary for FromUtf8Error

§

impl Arbitrary for FromUtf16Error

§

impl Arbitrary for String

§

fn arbitrary_with( args: <String as Arbitrary>::Parameters, ) -> <String as Arbitrary>::Strategy

§Panics

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

§

type Parameters = StringParam

§

type Strategy = &'static str

§

impl Arbitrary for Arc<str>

§

impl Arbitrary for Arc<Path>

This implementation is identical to the Arbitrary implementation for PathBuf.

§

impl Arbitrary for EscapeDefault

§

impl Arbitrary for BorrowError

§

impl Arbitrary for BorrowMutError

§

impl Arbitrary for ParseCharError

§

impl Arbitrary for DecodeUtf16<<Vec<u16> as IntoIterator>::IntoIter>

§

impl Arbitrary for DecodeUtf16Error

§

impl Arbitrary for EscapeDebug

§

impl Arbitrary for EscapeDefault

§

impl Arbitrary for EscapeUnicode

§

impl Arbitrary for Error

§

impl Arbitrary for Ipv4Addr

§

impl Arbitrary for Ipv6Addr

§

impl Arbitrary for AddrParseError

§

impl Arbitrary for SocketAddrV4

§

impl Arbitrary for SocketAddrV6

§

impl Arbitrary for ParseFloatError

§

impl Arbitrary for ParseIntError

§

impl Arbitrary for NonZero<i8>

§

impl Arbitrary for NonZero<i16>

§

impl Arbitrary for NonZero<i32>

§

impl Arbitrary for NonZero<i64>

§

impl Arbitrary for NonZero<i128>

§

impl Arbitrary for NonZero<isize>

§

impl Arbitrary for NonZero<u8>

§

impl Arbitrary for NonZero<u16>

§

impl Arbitrary for NonZero<u32>

§

impl Arbitrary for NonZero<u64>

§

impl Arbitrary for NonZero<u128>

§

impl Arbitrary for NonZero<usize>

§

impl Arbitrary for RangeFull

§

impl Arbitrary for ParseBoolError

§

impl Arbitrary for Utf8Error

§

type Parameters = ()

§

type Strategy = Map<(<u16 as Arbitrary>::Strategy, TupleUnion<((u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>))>), fn(_: <(<u16 as Arbitrary>::Strategy, TupleUnion<((u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>), (u32, Arc<Just<&'static [u8]>>))>) as Strategy>::Value) -> Utf8Error>

§

fn arbitrary_with( _args: <Utf8Error as Arbitrary>::Parameters, ) -> <Utf8Error as Arbitrary>::Strategy

§

impl Arbitrary for AtomicBool

§

impl Arbitrary for AtomicIsize

§

impl Arbitrary for AtomicUsize

§

impl Arbitrary for Duration

§

impl Arbitrary for Args

§

impl Arbitrary for ArgsOs

§

impl Arbitrary for JoinPathsError

§

impl Arbitrary for Vars

§

impl Arbitrary for VarsOs

§

impl Arbitrary for OsString

§

impl Arbitrary for DirBuilder

§

impl Arbitrary for DefaultHasher

§

impl Arbitrary for RandomState

§

impl Arbitrary for Error

§

impl Arbitrary for Stderr

§

impl Arbitrary for Stdin

§

impl Arbitrary for Stdout

§

impl Arbitrary for Empty

§

impl Arbitrary for Repeat

§

impl Arbitrary for Sink

§

impl Arbitrary for PathBuf

This implementation accepts as its argument a [PathParams] struct. It generates either a relative or an absolute path with equal probability.

Currently, this implementation does not generate:

  • Paths that are not valid UTF-8 (this is unlikely to change)
  • Paths with a PrefixComponent on Windows, e.g. C:\ (this may change in the future)
§

type Parameters = PathParams

§

type Strategy = Map<<PathParamsOutput as Arbitrary>::Strategy, fn(_: PathParamsOutput) -> PathBuf>

§

fn arbitrary_with( args: <PathBuf as Arbitrary>::Parameters, ) -> <PathBuf as Arbitrary>::Strategy

§

impl Arbitrary for StripPrefixError

§

impl Arbitrary for Barrier

§

impl Arbitrary for BarrierWaitResult

§

impl Arbitrary for RecvError

§

impl Arbitrary for Condvar

§

impl Arbitrary for WaitTimeoutResult

§

impl Arbitrary for Once

§

impl Arbitrary for Builder

§

impl Arbitrary for Instant

§

impl Arbitrary for SystemTime

§

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

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Cloned<A>>

§

fn arbitrary_with( args: <Cloned<A> as Arbitrary>::Parameters, ) -> <Cloned<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for (Sender<A>, IntoIter<A>)
where A: Debug,

§

type Parameters = ()

§

type Strategy = LazyJust<(Sender<A>, IntoIter<A>), fn() -> (Sender<A>, IntoIter<A>)>

§

fn arbitrary_with( _args: <(Sender<A>, IntoIter<A>) as Arbitrary>::Parameters, ) -> <(Sender<A>, IntoIter<A>) as Arbitrary>::Strategy

§

impl<A> Arbitrary for (Sender<A>, Receiver<A>)

§

type Parameters = ()

§

type Strategy = LazyJust<(Sender<A>, Receiver<A>), fn() -> (Sender<A>, Receiver<A>)>

§

fn arbitrary_with( _args: <(Sender<A>, Receiver<A>) as Arbitrary>::Parameters, ) -> <(Sender<A>, Receiver<A>) as Arbitrary>::Strategy

§

impl<A> Arbitrary for (SyncSender<A>, IntoIter<A>)
where A: Debug,

§

impl<A> Arbitrary for (SyncSender<A>, Receiver<A>)

§

impl<A> Arbitrary for Bound<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = TupleUnion<((u32, Arc<Map<Arc<<A as Arbitrary>::Strategy>, fn(_: <Arc<<A as Arbitrary>::Strategy> as Strategy>::Value) -> Bound<A>>>), (u32, Arc<Map<Arc<<A as Arbitrary>::Strategy>, fn(_: <Arc<<A as Arbitrary>::Strategy> as Strategy>::Value) -> Bound<A>>>), (u32, Arc<LazyJust<Bound<A>, fn() -> Bound<A>>>))>

§

fn arbitrary_with( args: <Bound<A> as Arbitrary>::Parameters, ) -> <Bound<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Option<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Result<Infallible, A>
where A: Arbitrary,

§

impl<A> Arbitrary for Result<A, Infallible>
where A: Arbitrary,

§

impl<A> Arbitrary for Box<[A]>
where A: Arbitrary,

§

impl<A> Arbitrary for Box<A>
where A: Arbitrary,

§

impl<A> Arbitrary for BinaryHeap<A>
where A: Arbitrary + Ord,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary + Ord,

§

impl<A> Arbitrary for BTreeSet<A>
where A: Arbitrary + Ord,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary + Ord,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary,

§

impl<A> Arbitrary for LinkedList<A>
where A: Arbitrary,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary,

§

impl<A> Arbitrary for VecDeque<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Rc<[A]>
where A: Arbitrary,

§

impl<A> Arbitrary for Rc<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Arc<[A]>
where A: Arbitrary,

§

impl<A> Arbitrary for Arc<A>
where A: Arbitrary,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Vec<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Cell<A>
where A: Arbitrary + Copy,

§

impl<A> Arbitrary for RefCell<A>
where A: Arbitrary,

§

impl<A> Arbitrary for UnsafeCell<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Reverse<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Reverse<A>>

§

fn arbitrary_with( args: <Reverse<A> as Arbitrary>::Parameters, ) -> <Reverse<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Cycle<A>
where A: Arbitrary + Iterator + Clone,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Cycle<A>>

§

fn arbitrary_with( args: <Cycle<A> as Arbitrary>::Parameters, ) -> <Cycle<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Enumerate<A>
where A: Arbitrary + Iterator,

§

impl<A> Arbitrary for Fuse<A>
where A: Arbitrary + Iterator,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Fuse<A>>

§

fn arbitrary_with( args: <Fuse<A> as Arbitrary>::Parameters, ) -> <Fuse<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Rev<A>

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Rev<A>>

§

fn arbitrary_with( args: <Rev<A> as Arbitrary>::Parameters, ) -> <Rev<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Skip<A>
where A: Arbitrary + Iterator,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<(A, usize) as Arbitrary>::Strategy, fn(_: (A, usize)) -> Skip<A>>

§

fn arbitrary_with( a: <Skip<A> as Arbitrary>::Parameters, ) -> <Skip<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Take<A>
where A: Arbitrary + Iterator,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<(A, usize) as Arbitrary>::Strategy, fn(_: (A, usize)) -> Take<A>>

§

fn arbitrary_with( a: <Take<A> as Arbitrary>::Parameters, ) -> <Take<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Empty<A>

§

impl<A> Arbitrary for Once<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Once<A>>

§

fn arbitrary_with( args: <Once<A> as Arbitrary>::Parameters, ) -> <Once<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Repeat<A>
where A: Arbitrary + Clone,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Repeat<A>>

§

fn arbitrary_with( args: <Repeat<A> as Arbitrary>::Parameters, ) -> <Repeat<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Discriminant<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Wrapping<A>
where A: Arbitrary,

§

impl<A> Arbitrary for Range<A>
where A: PartialOrd + Arbitrary,

§

impl<A> Arbitrary for RangeFrom<A>
where A: Arbitrary,

§

impl<A> Arbitrary for RangeInclusive<A>
where A: PartialOrd + Arbitrary,

§

impl<A> Arbitrary for RangeTo<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> RangeTo<A>>

§

fn arbitrary_with( args: <RangeTo<A> as Arbitrary>::Parameters, ) -> <RangeTo<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for RangeToInclusive<A>
where A: Arbitrary,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary,

§

impl<A> Arbitrary for AssertUnwindSafe<A>
where A: Arbitrary,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary,

§

impl<A> Arbitrary for HashSet<A>
where A: Arbitrary + Hash + Eq,

§

impl<A> Arbitrary for IntoIter<A>
where A: Arbitrary + Hash + Eq,

§

impl<A> Arbitrary for BufReader<A>
where A: Arbitrary + Read,

§

impl<A> Arbitrary for BufWriter<A>
where A: Arbitrary + Write,

§

impl<A> Arbitrary for LineWriter<A>
where A: Arbitrary + Write,

§

impl<A> Arbitrary for Cursor<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Cursor<A>>

§

fn arbitrary_with( args: <Cursor<A> as Arbitrary>::Parameters, ) -> <Cursor<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Lines<A>
where A: Arbitrary + BufRead,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Lines<A>>

§

fn arbitrary_with( args: <Lines<A> as Arbitrary>::Parameters, ) -> <Lines<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Split<A>
where A: BufRead + Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<(A, u8) as Arbitrary>::Strategy, fn(_: (A, u8)) -> Split<A>>

§

fn arbitrary_with( args: <Split<A> as Arbitrary>::Parameters, ) -> <Split<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Take<A>
where A: Read + Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<(A, u64) as Arbitrary>::Strategy, fn(_: (A, u64)) -> Take<A>>

§

fn arbitrary_with( args: <Take<A> as Arbitrary>::Parameters, ) -> <Take<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for Mutex<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Mutex<A>>

§

fn arbitrary_with( args: <Mutex<A> as Arbitrary>::Parameters, ) -> <Mutex<A> as Arbitrary>::Strategy

§

impl<A> Arbitrary for RwLock<A>
where A: Arbitrary,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> RwLock<A>>

§

fn arbitrary_with( args: <RwLock<A> as Arbitrary>::Parameters, ) -> <RwLock<A> as Arbitrary>::Strategy

§

impl<A, B> Arbitrary for Cow<'static, B>
where A: Arbitrary + Borrow<B>, B: ToOwned<Owned = A> + Debug + ?Sized,

§

type Parameters = <A as Arbitrary>::Parameters

§

type Strategy = Map<<A as Arbitrary>::Strategy, fn(_: A) -> Cow<'static, B>>

§

fn arbitrary_with( args: <Cow<'static, B> as Arbitrary>::Parameters, ) -> <Cow<'static, B> as Arbitrary>::Strategy

§

impl<A, B> Arbitrary for Result<A, B>
where A: Arbitrary, B: Arbitrary,

§

impl<A, B> Arbitrary for BTreeMap<A, B>
where A: Arbitrary + Ord, B: Arbitrary,

§

impl<A, B> Arbitrary for IntoIter<A, B>
where A: Arbitrary + Ord, B: Arbitrary,

§

type Parameters = <BTreeMap<A, B> as Arbitrary>::Parameters

§

type Strategy = Map<<BTreeMap<A, B> as Arbitrary>::Strategy, fn(_: BTreeMap<A, B>) -> IntoIter<A, B>>

§

fn arbitrary_with( args: <IntoIter<A, B> as Arbitrary>::Parameters, ) -> <IntoIter<A, B> as Arbitrary>::Strategy

§

impl<A, B> Arbitrary for Zip<A, B>

§

type Parameters = (<A as Arbitrary>::Parameters, <B as Arbitrary>::Parameters)

§

type Strategy = Map<<(A, B) as Arbitrary>::Strategy, fn(_: (A, B)) -> Zip<A, B>>

§

fn arbitrary_with( args: <Zip<A, B> as Arbitrary>::Parameters, ) -> <Zip<A, B> as Arbitrary>::Strategy

§

impl<A, B> Arbitrary for HashMap<A, B>
where A: Arbitrary + Hash + Eq, B: Arbitrary,

§

impl<A, B> Arbitrary for IntoIter<A, B>
where A: Arbitrary + Hash + Eq, B: Arbitrary,

§

type Parameters = <HashMap<A, B> as Arbitrary>::Parameters

§

type Strategy = Map<<HashMap<A, B> as Arbitrary>::Strategy, fn(_: HashMap<A, B>) -> IntoIter<A, B>>

§

fn arbitrary_with( args: <IntoIter<A, B> as Arbitrary>::Parameters, ) -> <IntoIter<A, B> as Arbitrary>::Strategy

§

impl<A, B> Arbitrary for Chain<A, B>
where A: Read + Arbitrary, B: Read + Arbitrary,

§

type Parameters = (<A as Arbitrary>::Parameters, <B as Arbitrary>::Parameters)

§

type Strategy = Map<<(A, B) as Arbitrary>::Strategy, fn(_: (A, B)) -> Chain<A, B>>

§

fn arbitrary_with( args: <Chain<A, B> as Arbitrary>::Parameters, ) -> <Chain<A, B> as Arbitrary>::Strategy

§

impl<A, T> Arbitrary for Peekable<A>
where A: Arbitrary + Iterator<Item = T>, T: Debug,

§

impl<A, const N: usize> Arbitrary for [A; N]
where A: Arbitrary,

§

impl<H> Arbitrary for BuildHasherDefault<H>
where H: Default + Hasher,

§

impl<P, T> Arbitrary for TrySendError<T>
where P: Clone + Default, T: Arbitrary<Parameters = P>,

§

type Parameters = P

§

type Strategy = TupleUnion<((u32, Arc<Map<<T as Arbitrary>::Strategy, fn(_: T) -> TrySendError<T>>>), (u32, Arc<Map<<T as Arbitrary>::Strategy, fn(_: T) -> TrySendError<T>>>))>

§

fn arbitrary_with( args: <TrySendError<T> as Arbitrary>::Parameters, ) -> <TrySendError<T> as Arbitrary>::Strategy

§

impl<T0> Arbitrary for (T0,)
where T0: Arbitrary,

§

impl<T0, T1> Arbitrary for (T0, T1)
where T0: Arbitrary, T1: Arbitrary,

§

impl<T0, T1, T2> Arbitrary for (T0, T1, T2)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary,

§

impl<T0, T1, T2, T3> Arbitrary for (T0, T1, T2, T3)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary,

§

impl<T0, T1, T2, T3, T4> Arbitrary for (T0, T1, T2, T3, T4)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary,

§

impl<T0, T1, T2, T3, T4, T5> Arbitrary for (T0, T1, T2, T3, T4, T5)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary, T5: Arbitrary,

§

impl<T0, T1, T2, T3, T4, T5, T6> Arbitrary for (T0, T1, T2, T3, T4, T5, T6)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary, T5: Arbitrary, T6: Arbitrary,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7> Arbitrary for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary, T5: Arbitrary, T6: Arbitrary, T7: Arbitrary,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Arbitrary for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary, T5: Arbitrary, T6: Arbitrary, T7: Arbitrary, T8: Arbitrary,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Arbitrary for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Arbitrary, T1: Arbitrary, T2: Arbitrary, T3: Arbitrary, T4: Arbitrary, T5: Arbitrary, T6: Arbitrary, T7: Arbitrary, T8: Arbitrary, T9: Arbitrary,

§

impl<T> Arbitrary for PhantomData<T>
where T: ?Sized,

§

impl<T> Arbitrary for SendError<T>
where T: Arbitrary,

§

impl<T, A, B> Arbitrary for Chain<A, B>
where A: Arbitrary + Iterator<Item = T>, B: Arbitrary + Iterator<Item = T>,

§

type Parameters = (<A as Arbitrary>::Parameters, <B as Arbitrary>::Parameters)

§

type Strategy = Map<<(A, B) as Arbitrary>::Strategy, fn(_: (A, B)) -> Chain<A, B>>

§

fn arbitrary_with( args: <Chain<A, B> as Arbitrary>::Parameters, ) -> <Chain<A, B> as Arbitrary>::Strategy

Implementors§

§

impl Arbitrary for SizeRange

§

impl Arbitrary for Probability

§

impl Arbitrary for Index

§

impl Arbitrary for Selector

impl Arbitrary for Commitment

impl Arbitrary for Network

impl Arbitrary for NetworkUpgrade

impl Arbitrary for TransferData<PerSpendAnchor>

impl Arbitrary for TransferData<SharedAnchor>

impl Arbitrary for LockTime

impl Arbitrary for Transaction

impl Arbitrary for UnminedTxId

impl Arbitrary for Address

impl Arbitrary for CoinbaseSpendRestriction

impl Arbitrary for Input

impl Arbitrary for Solution

impl Arbitrary for LedgerState

impl Arbitrary for AuthDataRoot

impl Arbitrary for Root

impl Arbitrary for Block

impl Arbitrary for CountedHeader

impl Arbitrary for Hash

impl Arbitrary for Header

impl Arbitrary for Height

impl Arbitrary for SpendAuthSignature

impl Arbitrary for Diversifier

impl Arbitrary for AuthorizedAction

impl Arbitrary for Flags

impl Arbitrary for ShieldedData

impl Arbitrary for Action

impl Arbitrary for EncryptedNote

impl Arbitrary for Nullifier

impl Arbitrary for WrappedNoteKey

impl Arbitrary for Node

impl Arbitrary for Root

impl Arbitrary for Magic

impl Arbitrary for Bctv14Proof

impl Arbitrary for Groth16Proof

impl Arbitrary for Halo2Proof

impl Arbitrary for Diversifier

impl Arbitrary for Output

impl Arbitrary for OutputInTransactionV4

impl Arbitrary for FieldNotPresent

impl Arbitrary for Spend<PerSpendAnchor>

impl Arbitrary for Spend<SharedAnchor>

impl Arbitrary for EncryptedNote

impl Arbitrary for Nullifier

impl Arbitrary for WrappedNoteKey

impl Arbitrary for Node

impl Arbitrary for Root

impl Arbitrary for CompactSize64

impl Arbitrary for CompactSizeMessage

impl Arbitrary for DateTime32

impl Arbitrary for CommitmentRandomness

impl Arbitrary for NoteCommitment

impl Arbitrary for PayingKey

impl Arbitrary for EncryptedNote

impl Arbitrary for Mac

impl Arbitrary for Note

impl Arbitrary for Nullifier

impl Arbitrary for NullifierSeed

impl Arbitrary for RandomSeed

impl Arbitrary for Root

impl Arbitrary for NoteCommitmentSubtreeIndex

impl Arbitrary for BindingSignature

impl Arbitrary for AuthDigest

impl Arbitrary for Hash

impl Arbitrary for Memo

impl Arbitrary for UnminedTx

impl Arbitrary for VerifiedUnminedTx

impl Arbitrary for WtxId

impl Arbitrary for OrderedUtxo

impl Arbitrary for OutPoint

impl Arbitrary for Output

impl Arbitrary for Script

impl Arbitrary for Utxo

impl Arbitrary for ValueBalance<NegativeAllowed>

impl Arbitrary for ValueBalance<NonNegative>

impl Arbitrary for CompactDifficulty

impl Arbitrary for ExpandedDifficulty

impl Arbitrary for PartialCumulativeWork

impl Arbitrary for Work

impl<AnchorV> Arbitrary for ShieldedData<AnchorV>
where AnchorV: AnchorVariant + Clone + Debug + 'static, TransferData<AnchorV>: Arbitrary,

impl<C> Arbitrary for Amount<C>
where C: Constraint + Debug,

impl<CollectionOrIter> Arbitrary for SummaryDebug<CollectionOrIter>
where CollectionOrIter: Arbitrary + IntoIterator + Clone + 'static, <CollectionOrIter as IntoIterator>::IntoIter: ExactSizeIterator,

impl<P: ZkSnarkProof + Arbitrary + 'static> Arbitrary for JoinSplit<P>

impl<P: ZkSnarkProof + Arbitrary + 'static> Arbitrary for JoinSplitData<P>

impl<SubtreeRoot: Arbitrary> Arbitrary for NoteCommitmentSubtree<SubtreeRoot>

impl<SubtreeRoot: Arbitrary> Arbitrary for NoteCommitmentSubtreeData<SubtreeRoot>

impl<T: AsRef<[u8]> + Arbitrary> Arbitrary for HexDebug<T>

impl<T: Display + Arbitrary> Arbitrary for DisplayToDebug<T>

impl<T: Arbitrary> Arbitrary for TypeNameToDebug<T>

impl Arbitrary for TransactionError

impl Arbitrary for PeerAddrState

impl Arbitrary for Request

impl Arbitrary for Response

impl Arbitrary for MetaAddrChange

impl Arbitrary for AddrV2

impl Arbitrary for Message

impl Arbitrary for RejectReason

impl Arbitrary for InventoryHash

impl Arbitrary for MetaAddr

impl Arbitrary for AddrV1

impl Arbitrary for Filter

impl Arbitrary for Tweak

impl Arbitrary for PeerSocketAddr

impl Arbitrary for Version

impl Arbitrary for VersionMessage

impl Arbitrary for AddrInVersion

impl Arbitrary for Nonce

impl Arbitrary for PeerServices

impl<A: Arbitrary, M: Arbitrary> Arbitrary for InventoryResponse<A, M>

impl Arbitrary for AddressBalanceLocation

impl Arbitrary for AddressTransaction

impl Arbitrary for AddressUnspentOutput

impl Arbitrary for ChainTipBlock

impl Arbitrary for OutputIndex

impl Arbitrary for OutputLocation

impl Arbitrary for SaplingScannedDatabaseEntry

impl Arbitrary for SaplingScannedDatabaseIndex

impl Arbitrary for SaplingScannedResult

impl Arbitrary for TransactionIndex

impl Arbitrary for TransactionLocation

impl Arbitrary for ExactTipRejectionError

impl Arbitrary for MempoolError

impl Arbitrary for SameEffectsTipRejectionError

impl Arbitrary for RejectionError