-/// Mutates data by shuffling bytes.
-size_t Mutate_ShuffleBytes(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-/// Mutates data by erasing a byte.
-size_t Mutate_EraseByte(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-/// Mutates data by inserting a byte.
-size_t Mutate_InsertByte(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-/// Mutates data by chanding one byte.
-size_t Mutate_ChangeByte(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-/// Mutates data by chanding one bit.
-size_t Mutate_ChangeBit(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-
-/// Applies one of the above mutations.
-/// Returns the new size of data which could be up to MaxSize.
-size_t Mutate(uint8_t *Data, size_t Size, size_t MaxSize,
- FuzzerRandomBase &Rand);
-
-/// Creates a cross-over of two pieces of Data, returns its size.
-size_t CrossOver(const uint8_t *Data1, size_t Size1, const uint8_t *Data2,
- size_t Size2, uint8_t *Out, size_t MaxOutSize,
- FuzzerRandomBase &Rand);