1pub struct Ops{
2 pub op:String
3}
4pub enum Type{
5 String,
6 Int,
7 Float,
8 Vec,
9 Other
10}
11impl Ops{
12 pub fn new() ->Ops{
13 Self{
14 op: "".to_string()
15 }
16 }
17 pub fn show_all(&mut self) {
18 return self.op.push_str("show all")
19 }
20
21 pub fn show_pool(&mut self,pool:String) {
22 return self.op.push_str(format!("show {}",pool).as_str())
23 }
24
25 pub fn show_pool_key(&mut self,pool:String,key:String){
26 return self.op.push_str(format!("show {} {}",pool,key).as_str())
27 }
28
29 pub fn add_pool(&mut self,pool:String){
30 return self.op.push_str(format!("add pool {}",pool).as_str())
31 }
32
33 pub fn add_key(&mut self,pool:String,key:String,ty:Type,value:String){
34 return self.op.push_str(format!("add {} {} {} {}",pool,key,ty.go_string(),value).as_str())
35 }
36 pub fn del_pool(&mut self,pool:String){
37 return self.op.push_str(format!("del pool {}",pool).as_str());
38 }
39 pub fn del_key(&mut self,pool:String,key:String){
40 return self.op.push_str(format!("del {} {}",pool,key).as_str())
41 }
42
43 pub fn del_pool_all(&mut self,pool:String){
44 self.op.push_str(format!("del {} all",pool).as_str())
45 }
46
47 pub fn clear(&mut self){
48 self.op.clear();
49 }
50
51 pub fn go_byte(&self) ->Vec<u8>{
52 let mut xs = self.op.as_bytes().to_vec();
53 xs.push(230);
54 xs
55 }
56
57
58}
59
60impl Type {
61 pub fn go_string(&self) -> String {
62 match self{
63 Type::String => {"string".to_string()}
64 Type::Int => {"int".to_string()}
65 Type::Float => {"float".to_string()}
66 Type::Vec => {"vec".to_string()}
67 Type::Other => {"other".to_string()}
68 }
69 }
70}