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
use *;
// TODO finish later
//pub struct SerdeSerialiser<S>
//where
// S: Serializer,
//{
// type_id: u64,
// size_hint: Option<usize>,
// format: S,
//}
//
//impl<S> SerdeSerialiser<S>
//where
// S: Serializer,
//{
// pub fn new(type_id: u64, format: S) -> SerdeSerializer<S> {
// SerdeSerialiser {
// type_id,
// size_hint: None,
// format,
// }
// }
//
// pub fn with_hint(type_id: u64, size_hint: usize, format: S) -> SerdeSerializer<S> {
// SerdeSerialiser {
// type_id,
// size_hint: Some(size_hint),
// format,
// }
// }
//}
//
//impl<T, S> Serialiser<T> for SerdeSerialiser<S>
//where
// T: Serialize,
// S: Serializer,
//{
// fn id(&self) -> u64 {
// self.type_id
// }
// fn size_hint(&self) -> Option<usize> {
// self.size_hint
// }
// fn serialise(&self, v: &T, buf: &mut BufMut) -> Result<(), SerError> {
// let encoded = v.serialize(self.format);
// }
//}
//impl<T> From<T> for Box<Serialisable>
//where
// T: Serialize + Debug + 'static,
//{
// fn from(t: T) -> Self {
// let sv = SerialisableValue { v: t, ser: t.1 };
// Box::new(sv) as Box<Serialisable>
// }
//}