datastore_mysql/
types.rs

1use datastore::{Read, Reader, TypeWriter, Write, Writer};
2
3use crate::MySqlStore;
4
5impl Write<MySqlStore> for bool {
6    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
7    where
8        W: Writer<MySqlStore>,
9    {
10        writer.write_bool(*self)
11    }
12
13    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
14    where
15        W: TypeWriter<MySqlStore>,
16    {
17        writer.write_bool()
18    }
19}
20
21impl Write<MySqlStore> for i8 {
22    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
23    where
24        W: Writer<MySqlStore>,
25    {
26        writer.write_i8(*self)
27    }
28
29    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
30    where
31        W: TypeWriter<MySqlStore>,
32    {
33        writer.write_i8()
34    }
35}
36
37impl Write<MySqlStore> for i16 {
38    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
39    where
40        W: Writer<MySqlStore>,
41    {
42        writer.write_i16(*self)
43    }
44
45    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
46    where
47        W: TypeWriter<MySqlStore>,
48    {
49        writer.write_i16()
50    }
51}
52
53impl Write<MySqlStore> for i32 {
54    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
55    where
56        W: Writer<MySqlStore>,
57    {
58        writer.write_i32(*self)
59    }
60
61    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
62    where
63        W: TypeWriter<MySqlStore>,
64    {
65        writer.write_i32()
66    }
67}
68
69impl Write<MySqlStore> for i64 {
70    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
71    where
72        W: Writer<MySqlStore>,
73    {
74        writer.write_i64(*self)
75    }
76
77    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
78    where
79        W: TypeWriter<MySqlStore>,
80    {
81        writer.write_i64()
82    }
83}
84
85impl Write<MySqlStore> for u8 {
86    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
87    where
88        W: Writer<MySqlStore>,
89    {
90        writer.write_u8(*self)
91    }
92
93    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
94    where
95        W: TypeWriter<MySqlStore>,
96    {
97        writer.write_u8()
98    }
99}
100
101impl Write<MySqlStore> for u16 {
102    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
103    where
104        W: Writer<MySqlStore>,
105    {
106        writer.write_u16(*self)
107    }
108
109    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
110    where
111        W: TypeWriter<MySqlStore>,
112    {
113        writer.write_u16()
114    }
115}
116
117impl Write<MySqlStore> for u32 {
118    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
119    where
120        W: Writer<MySqlStore>,
121    {
122        writer.write_u32(*self)
123    }
124
125    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
126    where
127        W: TypeWriter<MySqlStore>,
128    {
129        writer.write_u32()
130    }
131}
132
133impl Write<MySqlStore> for u64 {
134    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
135    where
136        W: Writer<MySqlStore>,
137    {
138        writer.write_u64(*self)
139    }
140
141    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
142    where
143        W: TypeWriter<MySqlStore>,
144    {
145        writer.write_u64()
146    }
147}
148
149impl Write<MySqlStore> for f32 {
150    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
151    where
152        W: Writer<MySqlStore>,
153    {
154        writer.write_f32(*self)
155    }
156
157    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
158    where
159        W: TypeWriter<MySqlStore>,
160    {
161        writer.write_f32()
162    }
163}
164
165impl Write<MySqlStore> for f64 {
166    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
167    where
168        W: Writer<MySqlStore>,
169    {
170        writer.write_f64(*self)
171    }
172
173    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
174    where
175        W: TypeWriter<MySqlStore>,
176    {
177        writer.write_f64()
178    }
179}
180
181impl Write<MySqlStore> for [u8] {
182    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
183    where
184        W: Writer<MySqlStore>,
185    {
186        writer.write_bytes(self)
187    }
188
189    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
190    where
191        W: TypeWriter<MySqlStore>,
192    {
193        writer.write_bytes()
194    }
195}
196
197impl Write<MySqlStore> for Vec<u8> {
198    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
199    where
200        W: Writer<MySqlStore>,
201    {
202        writer.write_bytes(&self)
203    }
204
205    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
206    where
207        W: TypeWriter<MySqlStore>,
208    {
209        writer.write_bytes()
210    }
211}
212
213impl Write<MySqlStore> for str {
214    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
215    where
216        W: Writer<MySqlStore>,
217    {
218        writer.write_str(self)
219    }
220
221    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
222    where
223        W: TypeWriter<MySqlStore>,
224    {
225        writer.write_str()
226    }
227}
228
229impl Write<MySqlStore> for String {
230    fn write<W>(&self, writer: &mut W) -> Result<(), W::Error>
231    where
232        W: Writer<MySqlStore>,
233    {
234        writer.write_str(&self)
235    }
236
237    fn write_type<W>(writer: &mut W) -> Result<(), W::Error>
238    where
239        W: TypeWriter<MySqlStore>,
240    {
241        writer.write_str()
242    }
243}
244
245// === impl Read ===
246
247impl Read<MySqlStore> for bool {
248    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
249    where
250        R: Reader<MySqlStore>,
251    {
252        reader.read_bool()
253    }
254}
255
256impl Read<MySqlStore> for i8 {
257    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
258    where
259        R: Reader<MySqlStore>,
260    {
261        reader.read_i8()
262    }
263}
264
265impl Read<MySqlStore> for i16 {
266    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
267    where
268        R: Reader<MySqlStore>,
269    {
270        reader.read_i16()
271    }
272}
273
274impl Read<MySqlStore> for i32 {
275    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
276    where
277        R: Reader<MySqlStore>,
278    {
279        reader.read_i32()
280    }
281}
282
283impl Read<MySqlStore> for i64 {
284    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
285    where
286        R: Reader<MySqlStore>,
287    {
288        reader.read_i64()
289    }
290}
291
292impl Read<MySqlStore> for u8 {
293    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
294    where
295        R: Reader<MySqlStore>,
296    {
297        reader.read_u8()
298    }
299}
300
301impl Read<MySqlStore> for u16 {
302    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
303    where
304        R: Reader<MySqlStore>,
305    {
306        reader.read_u16()
307    }
308}
309
310impl Read<MySqlStore> for u32 {
311    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
312    where
313        R: Reader<MySqlStore>,
314    {
315        reader.read_u32()
316    }
317}
318
319impl Read<MySqlStore> for u64 {
320    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
321    where
322        R: Reader<MySqlStore>,
323    {
324        reader.read_u64()
325    }
326}
327
328impl Read<MySqlStore> for f32 {
329    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
330    where
331        R: Reader<MySqlStore>,
332    {
333        reader.read_f32()
334    }
335}
336
337impl Read<MySqlStore> for f64 {
338    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
339    where
340        R: Reader<MySqlStore>,
341    {
342        reader.read_f64()
343    }
344}
345
346impl Read<MySqlStore> for Vec<u8> {
347    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
348    where
349        R: Reader<MySqlStore>,
350    {
351        reader.read_byte_buf()
352    }
353}
354
355impl Read<MySqlStore> for String {
356    fn read<R>(reader: &mut R) -> Result<Self, R::Error>
357    where
358        R: Reader<MySqlStore>,
359    {
360        reader.read_string()
361    }
362}