wsbps/
lib.rs

1pub mod packets;
2pub mod io;
3pub mod error;
4
5pub use io::*;
6pub use error::*;
7
8#[cfg(test)]
9mod tests {
10    use std::io::{Cursor};
11
12    use crate::{Writable, Readable, packet_data, packets, VarInt};
13
14    #[test]
15    fn it_works() {
16        packet_data! {
17            enum Test (<->) (VarInt) {
18                X: 1,
19                B: 999
20            }
21
22            struct TestStruct (->) {
23                name: String
24            }
25        }
26
27
28        packets! {
29            BiPackets (<->) {
30                TestA (0x01) {
31                    b: VarInt,
32                    a: Vec<u8>,
33                }
34                TestB (0x02) {}
35            }
36        }
37
38
39        let mut p = BiPackets::TestA {
40            b: VarInt(4294967295),
41            a: vec![1,2,5]
42        };
43        println!("{:?}", p);
44
45
46        let mut o = Vec::new();
47        match p.write(&mut o) {
48            Err(_) => println!("Failed to encode"),
49            Ok(_) => {
50                println!("{:?}", o);
51                let mut s = Cursor::new(o);
52                match BiPackets::read(&mut s) {
53                    Err(e) => println!("{:?}",e),
54                    Ok(p) => {
55                        println!("{:?}",p);
56                        match p {
57                            BiPackets::TestA {b, a} => {
58                                print!("{:?} {:?}", b, a)
59                            }
60                            _ => {}
61                        }
62                    }
63                };
64            }
65        };
66    }
67}
68
69