Serializer
We also need to know how to save the generated test cases,
of type Vec<Operation<T>>
, to the file system.
The easiest way to do that is to use serde
and its derive macros
Serialize
and Deserialize
.
use serde::{Serialize, Deserialize};
#[derive(Clone, DefaultMutator, Serialize, Deserialize)]
enum Operation<T: Ord> {
Insert(T),
Contains(T),
}
Then, we will provide a fuzzcheck::SerdeSerializer
to our fuzz test so that
each interesting Vec<Operation<T>>
is saved as a JSON file.
There are other ways to serialize test cases. For example, for values of type
Vec<u8>
, you can use a fuzzcheck::ByteSerializer
, which will simply copy
the content of the vector to the file system. For values of type String
, one
can use a fuzzcheck::StringSerializer
.