[][src]Trait lain::traits::Mutatable

pub trait Mutatable {
    type RangeType: Debug + Bounded + Default;
    fn mutate<R: Rng>(
        &mut self,
        mutator: &mut Mutator<R>,
        constraints: Option<&Constraints<Self::RangeType>>
    ); }

A data structure that can be mutated in-place from an existing data structure, possibly generated by NewFuzzed.

Associated Types

Loading content...

Required methods

fn mutate<R: Rng>(
    &mut self,
    mutator: &mut Mutator<R>,
    constraints: Option<&Constraints<Self::RangeType>>
)

Loading content...

Implementations on Foreign Types

impl<T> Mutatable for Vec<T> where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = usize

impl<T> Mutatable for Vec<T> where
    T: Mutatable + NewFuzzed + SerializedSize + Clone,
    <T as Mutatable>::RangeType: Clone
[src]

impl<T> Mutatable for Vec<T> where
    T: Mutatable + NewFuzzed + SerializedSize,
    <T as Mutatable>::RangeType: Clone
[src]

type RangeType = usize

impl<T> Mutatable for [T] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T] where
    T: Mutatable + SerializedSize + Clone,
    T::RangeType: Clone
[src]

impl Mutatable for bool[src]

type RangeType = u8

impl Mutatable for u64[src]

type RangeType = u64

impl Mutatable for u32[src]

type RangeType = u32

impl Mutatable for u16[src]

type RangeType = u16

impl Mutatable for u8[src]

type RangeType = u8

impl Mutatable for i8[src]

type RangeType = i8

impl Mutatable for i16[src]

type RangeType = i16

impl Mutatable for i32[src]

type RangeType = i32

impl Mutatable for i64[src]

type RangeType = i64

impl<T> Mutatable for [T; 0] where
    T: Mutatable
[src]

type RangeType = u8

impl Mutatable for *const c_void[src]

type RangeType = u8

impl Mutatable for *mut c_void[src]

type RangeType = u8

impl<T> Mutatable for Option<T> where
    T: Mutatable + NewFuzzed<RangeType = <T as Mutatable>::RangeType>, 
[src]

type RangeType = <T as Mutatable>::RangeType

impl<T> Mutatable for [T; 1] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 2] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 3] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 4] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 5] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 6] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 7] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 8] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 9] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 10] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 11] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 12] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 13] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 14] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 15] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 16] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 17] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 18] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 19] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 20] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 21] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 22] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 23] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 24] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 25] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 26] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 27] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 28] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 29] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 30] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 31] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 32] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 33] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 34] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 35] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 36] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 37] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 38] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 39] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 40] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 41] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 42] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 43] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 44] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 45] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 46] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 47] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 48] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 49] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 50] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 51] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 52] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 53] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 54] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 55] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 56] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 57] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 58] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 59] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

impl<T> Mutatable for [T; 60] where
    T: Mutatable + SerializedSize,
    T::RangeType: Clone
[src]

type RangeType = T::RangeType

Loading content...

Implementors

impl Mutatable for AsciiString[src]

type RangeType = u8

impl Mutatable for Utf8String[src]

type RangeType = u8

impl<T, I> Mutatable for UnsafeEnum<T, I> where
    T: ToPrimitive<Output = I>,
    I: BitXor<Output = I> + NumCast + Bounded + Copy + Debug + Default + DangerousNumber<I> + Display + WrappingAdd + WrappingSub
[src]

type RangeType = I

Loading content...