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 StorageType

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 NonZero<i8>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

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

source§

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

source§

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

source§

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

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§

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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