Derive Macro durian_macros::UnitPacket

source ·
#[derive(UnitPacket)]
Expand description

Same as BinPacket but for empty or Unit structs

For example:

#[derive(UnitPacket)]
struct Ack;

Generates this code:

impl durian::Packet for Ack {
    fn as_bytes(&self) -> durian::bytes::Bytes {
        durian::bytes::Bytes::from("Ack")
    }
}

#[derive(Copy, Clone)]
pub struct AckPacketBuilder;
impl durian::PacketBuilder<Ack> for AckPacketBuilder {

    fn read(&self, bytes: durian::bytes::Bytes) -> Result<Ack, Box<dyn std::error::Error>> {
        Ok(Ack)
    }
}