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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#![warn(missing_docs)]
use std::io;
use std::convert::From;
use super::{IntoBytes, FromCursor};
use super::types::*;
use super::FromBytes;
#[derive(Debug, PartialEq, Clone)]
pub enum Consistency {
#[allow(missing_docs)]
Any,
#[allow(missing_docs)]
One,
#[allow(missing_docs)]
Two,
#[allow(missing_docs)]
Three,
#[allow(missing_docs)]
Quorum,
#[allow(missing_docs)]
All,
#[allow(missing_docs)]
LocalQuorum,
#[allow(missing_docs)]
EachQuorum,
#[allow(missing_docs)]
Serial,
#[allow(missing_docs)]
LocalSerial,
#[allow(missing_docs)]
LocalOne
}
impl IntoBytes for Consistency {
fn into_cbytes(&self) -> Vec<u8> {
return match self {
&Consistency::Any => to_short(0x0000),
&Consistency::One => to_short(0x0001),
&Consistency::Two => to_short(0x0002),
&Consistency::Three => to_short(0x0003),
&Consistency::Quorum => to_short(0x0004),
&Consistency::All => to_short(0x0005),
&Consistency::LocalQuorum => to_short(0x0006),
&Consistency::EachQuorum => to_short(0x0007),
&Consistency::Serial => to_short(0x0008),
&Consistency::LocalSerial => to_short(0x0009),
&Consistency::LocalOne => to_short(0x000A)
};
}
}
impl From<i32> for Consistency {
fn from(bytes: i32) -> Consistency {
return match bytes {
0x0000 => Consistency::Any,
0x0001 => Consistency::One,
0x0002 => Consistency::Two,
0x0003 => Consistency::Three,
0x0004 => Consistency::Quorum,
0x0005 => Consistency::All,
0x0006 => Consistency::LocalQuorum,
0x0007 => Consistency::EachQuorum,
0x0008 => Consistency::Serial,
0x0009 => Consistency::LocalSerial,
0x000A => Consistency::LocalOne,
_ => unreachable!()
};
}
}
impl FromBytes for Consistency {
fn from_bytes(bytes: Vec<u8>) -> Consistency {
return match from_bytes(bytes.clone()) {
0x0000 => Consistency::Any,
0x0001 => Consistency::One,
0x0002 => Consistency::Two,
0x0003 => Consistency::Three,
0x0004 => Consistency::Quorum,
0x0005 => Consistency::All,
0x0006 => Consistency::LocalQuorum,
0x0007 => Consistency::EachQuorum,
0x0008 => Consistency::Serial,
0x0009 => Consistency::LocalSerial,
0x000A => Consistency::LocalOne,
_ => unreachable!()
};
}
}
impl FromCursor for Consistency {
fn from_cursor(mut cursor: &mut io::Cursor<Vec<u8>>) -> Consistency {
let consistency_num = CIntShort::from_cursor(&mut cursor) as i32;
return Consistency::from(consistency_num);
}
}