Crates.io | bancho-packets-derive |
lib.rs | bancho-packets-derive |
version | 0.2.0 |
source | src |
created_at | 2023-01-13 23:47:18.2184 |
updated_at | 2023-03-20 15:24:47.079612 |
description | Derive macro for bancho-packets BanchoPacket trait |
homepage | https://peace.osu.icu/ |
repository | https://github.com/pure-peace/peace |
max_upload_size | |
id | 758470 |
size | 8,400 |
Available derives
ReadPacket
: This derive macro will implement the BanchoPacketRead
trait for the struct.WritePacket
: This derive macro will implement the BanchoPacketRead
trait for the struct.PacketLength
: This derive macro will implement the BanchoPacketLength
trait for the struct.example
use bancho_packets::{ReadPacket, PacketReader, PayloadReader};
#[derive(Debug, Clone, ReadPacket)]
/// [`BanchoMessage`] is the message structure of the bancho client.
pub struct BanchoMessage {
pub sender: String,
pub content: String,
pub target: String,
pub sender_id: i32,
}
// Now we can use [`PayloadReader`] to read the [`BanchoMessage`] from bytes.
let mut reader = PacketReader::new(&[
1, 0, 0, 20, 0, 0, 0, 11, 0, 11, 6, 228, 189, 160, 229, 165, 189,
11, 4, 35, 111, 115, 117, 0, 0, 0, 0,
]);
let packet = reader.next().unwrap();
let mut payload_reader = PayloadReader::new(packet.payload.unwrap());
let message = payload_reader.read::<BanchoMessage>();
println!("{:?}: {:?}", packet.id, message);