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
#[derive(Clone, Debug)]
pub enum Type {
Atom(String),
Bool(bool),
Command(String),
F32(f32),
I32(i32),
Raw(Vec<u8>),
String(String),
U8(u8),
Usize(usize),
}
#[cfg(any(test, feature = "with-quickcheck"))]
impl quickcheck::Arbitrary for Type {
fn arbitrary<G: quickcheck::Gen>(g: &mut G) -> Self {
use rand::Rng;
match g.gen_range(0, 9) {
0 => Type::Atom(String::arbitrary(g)),
1 => Type::Bool(bool::arbitrary(g)),
2 => Type::Command(String::arbitrary(g)),
3 => Type::F32(f32::arbitrary(g)),
4 => Type::I32(i32::arbitrary(g)),
5 => Type::Raw(Vec::<u8>::arbitrary(g)),
6 => Type::String(String::arbitrary(g)),
7 => Type::U8(u8::arbitrary(g)),
8 => Type::Usize(usize::arbitrary(g)),
_ => unimplemented![],
}
}
}