pub trait Arbitrary<'a>: Sized {
    // Required method
    fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self, Error>;

    // Provided methods
    fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error> { ... }
    fn size_hint(depth: usize) -> (usize, Option<usize>) { ... }
}
Available on crate feature testutils only.
Expand description

Generate arbitrary structured values from raw, unstructured data.

The Arbitrary trait allows you to generate valid structured values, like HashMaps, or ASTs, or MyTomlConfig, or any other data structure from raw, unstructured bytes provided by a fuzzer.

Deriving Arbitrary

Automatically deriving the Arbitrary trait is the recommended way to implement Arbitrary for your types.

Using the custom derive requires that you enable the "derive" cargo feature in your Cargo.toml:

[dependencies]
arbitrary = { version = "1", features = ["derive"] }

Then, you add the #[derive(Arbitrary)] annotation to your struct or enum type definition:

use arbitrary::Arbitrary;
use std::collections::HashSet;

#[derive(Arbitrary)]
pub struct AddressBook {
    friends: HashSet<Friend>,
}

#[derive(Arbitrary, Hash, Eq, PartialEq)]
pub enum Friend {
    Buddy { name: String },
    Pal { age: usize },
}

Every member of the struct or enum must also implement Arbitrary.

Implementing Arbitrary By Hand

Implementing Arbitrary mostly involves nested calls to other Arbitrary arbitrary implementations for each of your struct or enum’s members. But sometimes you need some amount of raw data, or you need to generate a variably-sized collection type, or something of that sort. The Unstructured type helps you with these tasks.

use arbitrary::{Arbitrary, Result, Unstructured};

impl<'a, T> Arbitrary<'a> for MyCollection<T>
where
    T: Arbitrary<'a>,
{
    fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self> {
        // Get an iterator of arbitrary `T`s.
        let iter = u.arbitrary_iter::<T>()?;

        // And then create a collection!
        let mut my_collection = MyCollection::new();
        for elem_result in iter {
            let elem = elem_result?;
            my_collection.insert(elem);
        }

        Ok(my_collection)
    }
}

Required Methods§

source

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the given unstructured data.

Calling Arbitrary::arbitrary requires that you have some raw data, perhaps given to you by a fuzzer like AFL or libFuzzer. You wrap this raw data in an Unstructured, and then you can call <MyType as Arbitrary>::arbitrary to construct an arbitrary instance of MyType from that unstructured data.

Implementations may return an error if there is not enough data to construct a full instance of Self, or they may fill out the rest of Self with dummy values. Using dummy values when the underlying data is exhausted can help avoid accidentally “defeating” some of the fuzzer’s mutations to the underlying byte stream that might otherwise lead to interesting runtime behavior or new code coverage if only we had just a few more bytes. However, it also requires that implementations for recursive types (e.g. struct Foo(Option<Box<Foo>>)) avoid infinite recursion when the underlying data is exhausted.

use arbitrary::{Arbitrary, Unstructured};

#[derive(Arbitrary)]
pub struct MyType {
    // ...
}

// Get the raw data from the fuzzer or wherever else.
let raw_data: &[u8] = get_raw_data_from_fuzzer();

// Wrap that raw data in an `Unstructured`.
let mut unstructured = Unstructured::new(raw_data);

// Generate an arbitrary instance of `MyType` and do stuff with it.
if let Ok(value) = MyType::arbitrary(&mut unstructured) {
    do_stuff(value);
}

See also the documentation for Unstructured.

Provided Methods§

source

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data.

This is similar to Arbitrary::arbitrary, however it assumes that it is the last consumer of the given data, and is thus able to consume it all if it needs. See also the documentation for Unstructured.

source

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself.

This is useful for determining how many elements we should insert when creating an arbitrary collection.

The return value is similar to Iterator::size_hint: it returns a tuple where the first element is a lower bound on the number of bytes required, and the second element is an optional upper bound.

The default implementation return (0, None) which is correct for any type, but not ultimately that useful. Using #[derive(Arbitrary)] will create a better implementation. If you are writing an Arbitrary implementation by hand, and your type can be part of a dynamically sized collection (such as Vec), you are strongly encouraged to override this default with a better implementation. The size_hint module will help with this task.

Invariant

It must be possible to construct every possible output using only inputs of lengths bounded by these parameters. This applies to both Arbitrary::arbitrary and Arbitrary::arbitrary_take_rest.

This is trivially true for (0, None). To restrict this further, it must be proven that all inputs that are now excluded produced redundant outputs which are still possible to produce using the reduced input space.

The depth Parameter

If you 100% know that the type you are implementing Arbitrary for is not a recursive type, or your implementation is not transitively calling any other size_hint methods, you can ignore the depth parameter. Note that if you are implementing Arbitrary for a generic type, you cannot guarantee the lack of type recursion!

Otherwise, you need to use arbitrary::size_hint::recursion_guard(depth) to prevent potential infinite recursion when calculating size hints for potentially recursive types:

use arbitrary::{Arbitrary, Unstructured, size_hint};

// This can potentially be a recursive type if `L` or `R` contain
// something like `Box<Option<MyEither<L, R>>>`!
enum MyEither<L, R> {
    Left(L),
    Right(R),
}

impl<'a, L, R> Arbitrary<'a> for MyEither<L, R>
where
    L: Arbitrary<'a>,
    R: Arbitrary<'a>,
{
    fn arbitrary(u: &mut Unstructured) -> arbitrary::Result<Self> {
        // ...
    }

    fn size_hint(depth: usize) -> (usize, Option<usize>) {
        // Protect against potential infinite recursion with
        // `recursion_guard`.
        size_hint::recursion_guard(depth, |depth| {
            // If we aren't too deep, then `recursion_guard` calls
            // this closure, which implements the natural size hint.
            // Don't forget to use the new `depth` in all nested
            // `size_hint` calls! We recommend shadowing the
            // parameter, like what is done here, so that you can't
            // accidentally use the wrong depth.
            size_hint::or(
                <L as Arbitrary>::size_hint(depth),
                <R as Arbitrary>::size_hint(depth),
            )
        })
    }
}

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a> Arbitrary<'a> for &'a str

source§

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

source§

impl<'a> Arbitrary<'a> for IpAddr

source§

impl<'a> Arbitrary<'a> for bool

source§

impl<'a> Arbitrary<'a> for char

source§

impl<'a> Arbitrary<'a> for f32

source§

impl<'a> Arbitrary<'a> for f64

source§

impl<'a> Arbitrary<'a> for i8

source§

impl<'a> Arbitrary<'a> for i16

source§

impl<'a> Arbitrary<'a> for i32

source§

impl<'a> Arbitrary<'a> for i64

source§

impl<'a> Arbitrary<'a> for i128

source§

impl<'a> Arbitrary<'a> for isize

source§

impl<'a> Arbitrary<'a> for u8

source§

impl<'a> Arbitrary<'a> for u16

source§

impl<'a> Arbitrary<'a> for u32

source§

impl<'a> Arbitrary<'a> for u64

source§

impl<'a> Arbitrary<'a> for u128

source§

impl<'a> Arbitrary<'a> for ()

source§

impl<'a> Arbitrary<'a> for usize

source§

impl<'a> Arbitrary<'a> for Box<str>

source§

impl<'a> Arbitrary<'a> for CString

source§

impl<'a> Arbitrary<'a> for Rc<str>

source§

impl<'a> Arbitrary<'a> for String

source§

impl<'a> Arbitrary<'a> for Arc<str>

source§

impl<'a> Arbitrary<'a> for Ipv4Addr

source§

impl<'a> Arbitrary<'a> for Ipv6Addr

source§

impl<'a> Arbitrary<'a> for NonZeroI8

source§

impl<'a> Arbitrary<'a> for NonZeroI16

source§

impl<'a> Arbitrary<'a> for NonZeroI32

source§

impl<'a> Arbitrary<'a> for NonZeroI64

source§

impl<'a> Arbitrary<'a> for NonZeroI128

source§

impl<'a> Arbitrary<'a> for NonZeroIsize

source§

impl<'a> Arbitrary<'a> for NonZeroU8

source§

impl<'a> Arbitrary<'a> for NonZeroU16

source§

impl<'a> Arbitrary<'a> for NonZeroU32

source§

impl<'a> Arbitrary<'a> for NonZeroU64

source§

impl<'a> Arbitrary<'a> for NonZeroU128

source§

impl<'a> Arbitrary<'a> for NonZeroUsize

source§

impl<'a> Arbitrary<'a> for AtomicBool

source§

impl<'a> Arbitrary<'a> for AtomicIsize

source§

impl<'a> Arbitrary<'a> for AtomicUsize

source§

impl<'a> Arbitrary<'a> for Duration

source§

impl<'a> Arbitrary<'a> for OsString

source§

impl<'a> Arbitrary<'a> for PathBuf

§

impl<'a> Arbitrary<'a> for Error

§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Error, Error>

§

fn size_hint(depth: usize) -> (usize, Option<usize>)

§

impl<'a> Arbitrary<'a> for StorageType

§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<StorageType, Error>

§

fn size_hint(depth: usize) -> (usize, Option<usize>)

§

impl<'a> Arbitrary<'a> for Symbol

§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Symbol, Error>

§

impl<'a> Arbitrary<'a> for Void

§

fn arbitrary(_u: &mut Unstructured<'a>) -> Result<Void, Error>

§

fn size_hint(_depth: usize) -> (usize, Option<usize>)

source§

impl<'a, A> Arbitrary<'a> for Cow<'a, A>
where A: ToOwned + ?Sized, <A as ToOwned>::Owned: Arbitrary<'a>,

source§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Cow<'a, A>, Error>

source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<'a, A> Arbitrary<'a> for Cell<A>
where A: Arbitrary<'a>,

source§

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

source§

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

source§

impl<'a, A> Arbitrary<'a> for Empty<A>
where A: Arbitrary<'a>,

source§

impl<'a, A> Arbitrary<'a> for PhantomData<A>
where A: Arbitrary<'a>,

source§

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

source§

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

source§

impl<'a, A> Arbitrary<'a> for RangeFrom<A>
where A: Arbitrary<'a> + Clone + PartialOrd,

source§

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

source§

impl<'a, A> Arbitrary<'a> for RangeTo<A>
where A: Arbitrary<'a> + Clone + PartialOrd,

source§

impl<'a, A> Arbitrary<'a> for RangeToInclusive<A>
where A: Arbitrary<'a> + Clone + PartialOrd,

source§

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

source§

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

source§

impl<'a, A, S> Arbitrary<'a> for HashSet<A, S>
where A: Arbitrary<'a> + Eq + Hash, S: BuildHasher + Default,

source§

impl<'a, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A> Arbitrary<'a> for (B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A)
where B: Arbitrary<'a>, C: Arbitrary<'a>, D: Arbitrary<'a>, E: Arbitrary<'a>, F: Arbitrary<'a>, G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, A: Arbitrary<'a>,

source§

impl<'a, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, B> Arbitrary<'a> for (C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, B)
where C: Arbitrary<'a>, D: Arbitrary<'a>, E: Arbitrary<'a>, F: Arbitrary<'a>, G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, B: Arbitrary<'a>,

source§

impl<'a, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, C> Arbitrary<'a> for (D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, C)
where D: Arbitrary<'a>, E: Arbitrary<'a>, F: Arbitrary<'a>, G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, C: Arbitrary<'a>,

source§

impl<'a, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, D> Arbitrary<'a> for (E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, D)
where E: Arbitrary<'a>, F: Arbitrary<'a>, G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, D: Arbitrary<'a>,

source§

impl<'a, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, E> Arbitrary<'a> for (F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, E)
where F: Arbitrary<'a>, G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, E: Arbitrary<'a>,

source§

impl<'a, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, F> Arbitrary<'a> for (G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, F)
where G: Arbitrary<'a>, H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, F: Arbitrary<'a>,

source§

impl<'a, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, G> Arbitrary<'a> for (H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, G)
where H: Arbitrary<'a>, I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, G: Arbitrary<'a>,

source§

impl<'a, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, H> Arbitrary<'a> for (I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, H)
where I: Arbitrary<'a>, J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, H: Arbitrary<'a>,

source§

impl<'a, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, I> Arbitrary<'a> for (J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, I)
where J: Arbitrary<'a>, K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, I: Arbitrary<'a>,

source§

impl<'a, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, J> Arbitrary<'a> for (K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, J)
where K: Arbitrary<'a>, L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, J: Arbitrary<'a>,

source§

impl<'a, K, V> Arbitrary<'a> for BTreeMap<K, V>
where K: Arbitrary<'a> + Ord, V: Arbitrary<'a>,

source§

impl<'a, K, V, S> Arbitrary<'a> for HashMap<K, V, S>
where K: Arbitrary<'a> + Eq + Hash, V: Arbitrary<'a>, S: BuildHasher + Default,

source§

impl<'a, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, K> Arbitrary<'a> for (L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, K)
where L: Arbitrary<'a>, M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, K: Arbitrary<'a>,

source§

impl<'a, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, L> Arbitrary<'a> for (M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, L)
where M: Arbitrary<'a>, N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, L: Arbitrary<'a>,

source§

impl<'a, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, M> Arbitrary<'a> for (N, O, P, Q, R, S, T, U, V, W, X, Y, Z, M)
where N: Arbitrary<'a>, O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, M: Arbitrary<'a>,

source§

impl<'a, O, P, Q, R, S, T, U, V, W, X, Y, Z, N> Arbitrary<'a> for (O, P, Q, R, S, T, U, V, W, X, Y, Z, N)
where O: Arbitrary<'a>, P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, N: Arbitrary<'a>,

source§

impl<'a, P, Q, R, S, T, U, V, W, X, Y, Z, O> Arbitrary<'a> for (P, Q, R, S, T, U, V, W, X, Y, Z, O)
where P: Arbitrary<'a>, Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, O: Arbitrary<'a>,

source§

impl<'a, Q, R, S, T, U, V, W, X, Y, Z, P> Arbitrary<'a> for (Q, R, S, T, U, V, W, X, Y, Z, P)
where Q: Arbitrary<'a>, R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, P: Arbitrary<'a>,

source§

impl<'a, R, S, T, U, V, W, X, Y, Z, Q> Arbitrary<'a> for (R, S, T, U, V, W, X, Y, Z, Q)
where R: Arbitrary<'a>, S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, Q: Arbitrary<'a>,

source§

impl<'a, S, T, U, V, W, X, Y, Z, R> Arbitrary<'a> for (S, T, U, V, W, X, Y, Z, R)
where S: Arbitrary<'a>, T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, R: Arbitrary<'a>,

source§

impl<'a, T, U, V, W, X, Y, Z, S> Arbitrary<'a> for (T, U, V, W, X, Y, Z, S)
where T: Arbitrary<'a>, U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, S: Arbitrary<'a>,

source§

impl<'a, T, const N: usize> Arbitrary<'a> for [T; N]
where T: Arbitrary<'a>,

source§

impl<'a, U, V, W, X, Y, Z, T> Arbitrary<'a> for (U, V, W, X, Y, Z, T)
where U: Arbitrary<'a>, V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, T: Arbitrary<'a>,

source§

impl<'a, V, W, X, Y, Z, U> Arbitrary<'a> for (V, W, X, Y, Z, U)
where V: Arbitrary<'a>, W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, U: Arbitrary<'a>,

source§

impl<'a, W, X, Y, Z, V> Arbitrary<'a> for (W, X, Y, Z, V)
where W: Arbitrary<'a>, X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, V: Arbitrary<'a>,

source§

impl<'a, X, Y, Z, W> Arbitrary<'a> for (X, Y, Z, W)
where X: Arbitrary<'a>, Y: Arbitrary<'a>, Z: Arbitrary<'a>, W: Arbitrary<'a>,

source§

impl<'a, Y, Z, X> Arbitrary<'a> for (Y, Z, X)
where Y: Arbitrary<'a>, Z: Arbitrary<'a>, X: Arbitrary<'a>,

source§

impl<'a, Z> Arbitrary<'a> for (Z,)
where Z: Arbitrary<'a>,

source§

impl<'a, Z, Y> Arbitrary<'a> for (Z, Y)
where Z: Arbitrary<'a>, Y: Arbitrary<'a>,

Implementors§

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExtensionV1Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExtensionV2Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountFlags

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountMergeResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountMergeResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for AllowTrustResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for AllowTrustResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for Asset

§

impl<'arbitrary> Arbitrary<'arbitrary> for AssetCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for AssetType

§

impl<'arbitrary> Arbitrary<'arbitrary> for AuthenticatedMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for BeginSponsoringFutureReservesResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for BeginSponsoringFutureReservesResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for BucketEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for BucketEntryType

§

impl<'arbitrary> Arbitrary<'arbitrary> for BucketMetadataExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for BumpSequenceResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for BumpSequenceResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ChangeTrustAsset

§

impl<'arbitrary> Arbitrary<'arbitrary> for ChangeTrustResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ChangeTrustResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimAtom

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimAtomType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimClaimableBalanceResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimClaimableBalanceResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimPredicate

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimPredicateType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceEntryExtensionV1Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceFlags

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceId

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceIdType

§

impl<'arbitrary> Arbitrary<'arbitrary> for Claimant

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimantType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackClaimableBalanceResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackClaimableBalanceResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingId

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractDataDurability

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractEventBody

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractEventType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractExecutable

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractExecutableType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractIdPreimage

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractIdPreimageType

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateAccountResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateAccountResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateClaimableBalanceResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateClaimableBalanceResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for CryptoKeyType

§

impl<'arbitrary> Arbitrary<'arbitrary> for DataEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for EndSponsoringFutureReservesResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for EndSponsoringFutureReservesResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for EnvelopeType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ErrorCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ExtendFootprintTtlResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ExtendFootprintTtlResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ExtensionPoint

§

impl<'arbitrary> Arbitrary<'arbitrary> for FeeBumpTransactionExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for FeeBumpTransactionInnerTx

§

impl<'arbitrary> Arbitrary<'arbitrary> for GeneralizedTransactionSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for HashIdPreimage

§

impl<'arbitrary> Arbitrary<'arbitrary> for HostFunction

§

impl<'arbitrary> Arbitrary<'arbitrary> for HostFunctionType

§

impl<'arbitrary> Arbitrary<'arbitrary> for InflationResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for InflationResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for InnerTransactionResultExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for InnerTransactionResultResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for InvokeHostFunctionResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for InvokeHostFunctionResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for IpAddrType

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerCloseMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryChange

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryChangeType

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryData

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryExtensionV1Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryType

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderExtensionV1Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderFlags

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderHistoryEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKey

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerUpgrade

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerUpgradeType

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolDepositResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolDepositResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolEntryBody

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolParameters

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolType

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolWithdrawResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolWithdrawResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageBuyOfferResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageBuyOfferResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageDataResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageDataResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageOfferEffect

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageOfferSuccessResultOffer

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageSellOfferResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageSellOfferResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for Memo

§

impl<'arbitrary> Arbitrary<'arbitrary> for MemoType

§

impl<'arbitrary> Arbitrary<'arbitrary> for MessageType

§

impl<'arbitrary> Arbitrary<'arbitrary> for MuxedAccount

§

impl<'arbitrary> Arbitrary<'arbitrary> for OfferEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for OfferEntryFlags

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationBody

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationResultTr

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationType

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictReceiveResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictReceiveResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictSendResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictSendResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for PaymentResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for PaymentResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for PeerAddressIp

§

impl<'arbitrary> Arbitrary<'arbitrary> for PersistedScpState

§

impl<'arbitrary> Arbitrary<'arbitrary> for PreconditionType

§

impl<'arbitrary> Arbitrary<'arbitrary> for Preconditions

§

impl<'arbitrary> Arbitrary<'arbitrary> for PublicKey

§

impl<'arbitrary> Arbitrary<'arbitrary> for PublicKeyType

§

impl<'arbitrary> Arbitrary<'arbitrary> for RestoreFootprintResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for RestoreFootprintResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for RevokeSponsorshipOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for RevokeSponsorshipResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for RevokeSponsorshipResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for RevokeSponsorshipType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScAddress

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScAddressType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScEnvMetaEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScEnvMetaKind

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScError

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScErrorCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScErrorType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScMetaEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScMetaKind

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecEntryKind

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeDef

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtUnionCaseV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtUnionCaseV0Kind

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScVal

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScValType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpHistoryEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatementPledges

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatementType

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetOptionsResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetOptionsResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetTrustLineFlagsResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetTrustLineFlagsResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignerKey

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignerKeyType

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanAuthorizedFunction

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanAuthorizedFunctionType

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanCredentials

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanCredentialsType

§

impl<'arbitrary> Arbitrary<'arbitrary> for StellarMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for StellarValueExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for StellarValueType

§

impl<'arbitrary> Arbitrary<'arbitrary> for StoredTransactionSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for SurveyMessageCommandType

§

impl<'arbitrary> Arbitrary<'arbitrary> for SurveyMessageResponseType

§

impl<'arbitrary> Arbitrary<'arbitrary> for SurveyResponseBody

§

impl<'arbitrary> Arbitrary<'arbitrary> for ThresholdIndexes

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionEnvelope

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionHistoryEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionHistoryResultEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionPhase

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionSignaturePayloadTaggedTransaction

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionV0Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineAsset

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntryExt

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntryExtensionV2Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntryV1Ext

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineFlags

§

impl<'arbitrary> Arbitrary<'arbitrary> for TxSetComponent

§

impl<'arbitrary> Arbitrary<'arbitrary> for TxSetComponentType

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractCostType

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExtensionV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExtensionV2

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountEntryExtensionV3

§

impl<'arbitrary> Arbitrary<'arbitrary> for AccountId

§

impl<'arbitrary> Arbitrary<'arbitrary> for AllowTrustOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for AlphaNum4

§

impl<'arbitrary> Arbitrary<'arbitrary> for AlphaNum12

§

impl<'arbitrary> Arbitrary<'arbitrary> for AssetCode4

§

impl<'arbitrary> Arbitrary<'arbitrary> for AssetCode12

§

impl<'arbitrary> Arbitrary<'arbitrary> for Auth

§

impl<'arbitrary> Arbitrary<'arbitrary> for AuthCert

§

impl<'arbitrary> Arbitrary<'arbitrary> for AuthenticatedMessageV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for BeginSponsoringFutureReservesOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for BucketMetadata

§

impl<'arbitrary> Arbitrary<'arbitrary> for BumpSequenceOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ChangeTrustOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimClaimableBalanceOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimLiquidityAtom

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimOfferAtom

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimOfferAtomV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimableBalanceEntryExtensionV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClaimantV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackClaimableBalanceOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ClawbackOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractBandwidthV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractComputeV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractEventsV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractExecutionLanesV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractHistoricalDataV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigSettingContractLedgerCostV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigUpgradeSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for ConfigUpgradeSetKey

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractCodeEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractCostParamEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractCostParams

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractDataEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractEvent

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractEventV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ContractIdPreimageFromAddress

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateAccountOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateClaimableBalanceOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreateContractArgs

§

impl<'arbitrary> Arbitrary<'arbitrary> for CreatePassiveSellOfferOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for Curve25519Public

§

impl<'arbitrary> Arbitrary<'arbitrary> for Curve25519Secret

§

impl<'arbitrary> Arbitrary<'arbitrary> for DataEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for DataValue

§

impl<'arbitrary> Arbitrary<'arbitrary> for DecoratedSignature

§

impl<'arbitrary> Arbitrary<'arbitrary> for DiagnosticEvent

§

impl<'arbitrary> Arbitrary<'arbitrary> for DontHave

§

impl<'arbitrary> Arbitrary<'arbitrary> for soroban_sdk::xdr::Duration

§

impl<'arbitrary> Arbitrary<'arbitrary> for EncryptedBody

§

impl<'arbitrary> Arbitrary<'arbitrary> for EvictionIterator

§

impl<'arbitrary> Arbitrary<'arbitrary> for ExtendFootprintTtlOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for FeeBumpTransaction

§

impl<'arbitrary> Arbitrary<'arbitrary> for FeeBumpTransactionEnvelope

§

impl<'arbitrary> Arbitrary<'arbitrary> for FloodAdvert

§

impl<'arbitrary> Arbitrary<'arbitrary> for FloodDemand

§

impl<'arbitrary> Arbitrary<'arbitrary> for Hash

§

impl<'arbitrary> Arbitrary<'arbitrary> for HashIdPreimageContractId

§

impl<'arbitrary> Arbitrary<'arbitrary> for HashIdPreimageOperationId

§

impl<'arbitrary> Arbitrary<'arbitrary> for HashIdPreimageRevokeId

§

impl<'arbitrary> Arbitrary<'arbitrary> for HashIdPreimageSorobanAuthorization

§

impl<'arbitrary> Arbitrary<'arbitrary> for Hello

§

impl<'arbitrary> Arbitrary<'arbitrary> for HmacSha256Key

§

impl<'arbitrary> Arbitrary<'arbitrary> for HmacSha256Mac

§

impl<'arbitrary> Arbitrary<'arbitrary> for InflationPayout

§

impl<'arbitrary> Arbitrary<'arbitrary> for InnerTransactionResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for InnerTransactionResultPair

§

impl<'arbitrary> Arbitrary<'arbitrary> for Int128Parts

§

impl<'arbitrary> Arbitrary<'arbitrary> for Int256Parts

§

impl<'arbitrary> Arbitrary<'arbitrary> for InvokeContractArgs

§

impl<'arbitrary> Arbitrary<'arbitrary> for InvokeHostFunctionOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for InvokeHostFunctionSuccessPreImage

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerBounds

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerCloseMetaV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerCloseMetaV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerCloseValueSignature

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryChanges

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerEntryExtensionV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerFootprint

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeader

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderExtensionV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerHeaderHistoryEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyAccount

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyClaimableBalance

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyConfigSetting

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyContractCode

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyContractData

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyData

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyLiquidityPool

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyOffer

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyTrustLine

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerKeyTtl

§

impl<'arbitrary> Arbitrary<'arbitrary> for LedgerScpMessages

§

impl<'arbitrary> Arbitrary<'arbitrary> for Liabilities

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolConstantProductParameters

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolDepositOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolEntryConstantProduct

§

impl<'arbitrary> Arbitrary<'arbitrary> for LiquidityPoolWithdrawOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageBuyOfferOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageDataOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageOfferSuccessResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ManageSellOfferOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for MuxedAccountMed25519

§

impl<'arbitrary> Arbitrary<'arbitrary> for NodeId

§

impl<'arbitrary> Arbitrary<'arbitrary> for OfferEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for Operation

§

impl<'arbitrary> Arbitrary<'arbitrary> for OperationMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictReceiveOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictReceiveResultSuccess

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictSendOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for PathPaymentStrictSendResultSuccess

§

impl<'arbitrary> Arbitrary<'arbitrary> for PaymentOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for PeerAddress

§

impl<'arbitrary> Arbitrary<'arbitrary> for PeerStatList

§

impl<'arbitrary> Arbitrary<'arbitrary> for PeerStats

§

impl<'arbitrary> Arbitrary<'arbitrary> for PersistedScpStateV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for PersistedScpStateV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for PoolId

§

impl<'arbitrary> Arbitrary<'arbitrary> for PreconditionsV2

§

impl<'arbitrary> Arbitrary<'arbitrary> for Price

§

impl<'arbitrary> Arbitrary<'arbitrary> for RestoreFootprintOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for RevokeSponsorshipOpSigner

§

impl<'arbitrary> Arbitrary<'arbitrary> for SError

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScBytes

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScContractInstance

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScMap

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScMapEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScMetaV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScNonceKey

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecFunctionInputV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecFunctionV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeBytesN

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeMap

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeOption

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeTuple

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeUdt

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecTypeVec

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtEnumCaseV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtEnumV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtErrorEnumCaseV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtErrorEnumV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtStructFieldV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtStructV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtUnionCaseTupleV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtUnionCaseVoidV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSpecUdtUnionV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScString

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScSymbol

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScVec

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpBallot

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpEnvelope

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpHistoryEntryV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpNomination

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpQuorumSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatement

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatementConfirm

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatementExternalize

§

impl<'arbitrary> Arbitrary<'arbitrary> for ScpStatementPrepare

§

impl<'arbitrary> Arbitrary<'arbitrary> for SendMore

§

impl<'arbitrary> Arbitrary<'arbitrary> for SendMoreExtended

§

impl<'arbitrary> Arbitrary<'arbitrary> for SequenceNumber

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetOptionsOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for SetTrustLineFlagsOp

§

impl<'arbitrary> Arbitrary<'arbitrary> for Signature

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignatureHint

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignedSurveyRequestMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignedSurveyResponseMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for Signer

§

impl<'arbitrary> Arbitrary<'arbitrary> for SignerKeyEd25519SignedPayload

§

impl<'arbitrary> Arbitrary<'arbitrary> for SimplePaymentResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanAddressCredentials

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanAuthorizationEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanAuthorizedInvocation

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanResources

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanTransactionData

§

impl<'arbitrary> Arbitrary<'arbitrary> for SorobanTransactionMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for SponsorshipDescriptor

§

impl<'arbitrary> Arbitrary<'arbitrary> for StateArchivalSettings

§

impl<'arbitrary> Arbitrary<'arbitrary> for StellarValue

§

impl<'arbitrary> Arbitrary<'arbitrary> for StoredDebugTransactionSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for String32

§

impl<'arbitrary> Arbitrary<'arbitrary> for String64

§

impl<'arbitrary> Arbitrary<'arbitrary> for SurveyRequestMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for SurveyResponseMessage

§

impl<'arbitrary> Arbitrary<'arbitrary> for Thresholds

§

impl<'arbitrary> Arbitrary<'arbitrary> for TimeBounds

§

impl<'arbitrary> Arbitrary<'arbitrary> for TimePoint

§

impl<'arbitrary> Arbitrary<'arbitrary> for TopologyResponseBodyV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for TopologyResponseBodyV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for Transaction

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionHistoryEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionHistoryResultEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionMetaV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionMetaV2

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionMetaV3

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResult

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultPair

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionResultSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionSet

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionSetV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionSignaturePayload

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionV0

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionV0Envelope

§

impl<'arbitrary> Arbitrary<'arbitrary> for TransactionV1Envelope

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntryExtensionV2

§

impl<'arbitrary> Arbitrary<'arbitrary> for TrustLineEntryV1

§

impl<'arbitrary> Arbitrary<'arbitrary> for TtlEntry

§

impl<'arbitrary> Arbitrary<'arbitrary> for TxAdvertVector

§

impl<'arbitrary> Arbitrary<'arbitrary> for TxDemandVector

§

impl<'arbitrary> Arbitrary<'arbitrary> for TxSetComponentTxsMaybeDiscountedFee

§

impl<'arbitrary> Arbitrary<'arbitrary> for UInt128Parts

§

impl<'arbitrary> Arbitrary<'arbitrary> for UInt256Parts

§

impl<'arbitrary> Arbitrary<'arbitrary> for Uint256

§

impl<'arbitrary> Arbitrary<'arbitrary> for UpgradeEntryMeta

§

impl<'arbitrary> Arbitrary<'arbitrary> for UpgradeType

§

impl<'arbitrary> Arbitrary<'arbitrary> for Value

§

impl<'arbitrary, T, const MAX: u32> Arbitrary<'arbitrary> for VecM<T, MAX>
where T: Arbitrary<'arbitrary>,

§

impl<'arbitrary, const MAX: u32> Arbitrary<'arbitrary> for BytesM<MAX>

§

impl<'arbitrary, const MAX: u32> Arbitrary<'arbitrary> for StringM<MAX>