bufferfish_core/
encodable.rs1use crate::{Bufferfish, BufferfishError};
4
5pub trait Encodable {
7 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError>;
9
10 fn to_bufferfish(&self) -> Result<Bufferfish, BufferfishError> {
12 let mut bf = Bufferfish::new();
13 self.encode(&mut bf)?;
14
15 Ok(bf)
16 }
17}
18
19impl Encodable for u8 {
20 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
21 bf.write_u8(*self)
22 }
23}
24
25impl Encodable for u16 {
26 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
27 bf.write_u16(*self)
28 }
29}
30
31impl Encodable for u32 {
32 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
33 bf.write_u32(*self)
34 }
35}
36
37impl Encodable for i8 {
38 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
39 bf.write_i8(*self)
40 }
41}
42
43impl Encodable for i16 {
44 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
45 bf.write_i16(*self)
46 }
47}
48
49impl Encodable for i32 {
50 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
51 bf.write_i32(*self)
52 }
53}
54
55impl Encodable for bool {
56 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
57 bf.write_bool(*self)
58 }
59}
60
61impl Encodable for String {
62 fn encode(&self, bf: &mut Bufferfish) -> Result<(), BufferfishError> {
63 bf.write_string(self)
64 }
65}