[][src]Crate byte_mutator

Byte Mutator

byte-mutator is a crate for defining a set of rules by which to mutate byte arrays. It contains two main primitives: Stage, and Mutator. A Stage allows multiple mutations per step, and a Mutator is a small stateful object that

Re-exports

pub use crate::fuzz_config::FuzzConfig;
pub use crate::mutators::Mutation;
pub use crate::mutators::MutationType;
pub use crate::undo_buffer::UndoBuffer;

Modules

fuzz_config

Deserializes a .toml config into a FuzzConfig object that can be used to configure a ByteMutator. See tests for examples.

mutators

This module contains the available mutators.

undo_buffer

UndoBuffer is a structure that is used to expose an 'undo' interface to a fixed size buffer. It internally maintains two fixed size ArrayVec structures. These arrays are identical on construction, but only one can be written to. UndoBuffer keeps track of which areas of the buffer have been mutably borrowed, and can then reset the buffer back to its original state.

Structs

ByteMutator

A defined set of stages of mutations

Stage

Used to define groups of mutations, and how many mutations should be performed.

Enums

Iterations

Used to limit the number of iterations in a Stage. todo: Unused, fix