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