1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use crate::mutators::map::MapMutator;
use crate::{DefaultMutator, Mutator};
pub type StringMutator = impl Mutator<String>;
#[no_coverage]
pub fn string_mutator() -> StringMutator {
MapMutator::new(
<Vec<u8>>::default_mutator(),
#[no_coverage]
|string: &String| Some(string.as_bytes().to_vec()),
#[no_coverage]
|xs| String::from_utf8_lossy(xs).to_string(),
#[no_coverage]
|value, _cplx| (value.as_bytes().len() * 8) as f64,
)
}
impl DefaultMutator for String {
type Mutator = StringMutator;
#[no_coverage]
fn default_mutator() -> Self::Mutator {
string_mutator()
}
}