fuzzcheck 0.12.1

A modular, structure-aware, and feedback-driven fuzzing engine for Rust functions
Documentation
use fuzzcheck::{DefaultMutator, Mutator};
use fuzzcheck_mutators_derive::make_mutator;

#[derive(Clone, DefaultMutator)]
enum NoAssociatedData {
    #[ignore_variant]
    A,
    B,
    #[ignore_variant]
    C,
    D,
    E,
}

#[derive(Clone)]
enum WithIgnore<T> {
    CanMutate(u8),
    CannotMutate(CannotMutate),
    X,
    Y,
    Z,
    A { flag: bool, item: T },
}

#[derive(Clone)]
struct CannotMutate {}

make_mutator! {
    name: WithIgnoreMutator,
    recursive: false,
    default: true,
    type:
        enum WithIgnore<T> {
            CanMutate(u8),
            #[ignore_variant]
            CannotMutate(CannotMutate),
            #[ignore_variant]
            X,
            #[ignore_variant]
            Y,
            #[ignore_variant]
            Z,
            #[ignore_variant]
            A {
                flag: bool,
                item: T
            }
        }
}

#[test]
#[no_coverage]
fn test_compile() {
    let m = WithIgnore::<bool>::default_mutator();
    let _ = m.random_arbitrary(10.0);
}