wire-framed-derive

Crates.iowire-framed-derive
lib.rswire-framed-derive
version0.1.4
sourcesrc
created_at2023-05-15 16:22:02.022978
updated_at2023-06-18 15:16:23.556998
descriptionA library for encoding and decoding structures into a binary data format.
homepagehttps://github.com/mscofield0/wire-framed
repositoryhttps://github.com/mscofield0/wire-framed
max_upload_size
id865178
size15,794
Michael Scofield (mscofield0)

documentation

README

wire-framed

wire-framed is a library for encoding and decoding frames using a custom binary protocol. It prioritizes ease-of-use.

It reolves around two traits FromFrame and IntoFrame. These traits can be manually implemented relatively easily using the utilities provided in the utils module or automatically using the Encoding and Decoding macros.

Usage

use wire_framed::prelude::*;

#[derive(Debug, Encoding, Decoding, PartialEq, Eq)]
pub struct Foo {
    pub id: u32,
    pub name: String,
    pub description: String,
    pub created_at: u64,
}

fn send() -> Result<(), std::io::Error> {
    let foo = Foo {
        id: 1,
        name: "John".to_string(),
        description: "John is a legend".to_string(),
        created_at: 1234567890,
    };

    let frame = foo.into_frame();
    send_to_socket(frame)
}

fn recv() -> Result<(), std::io::Error> {
    let bytes = recv_from_socket();
    let foo = Foo::from_frame(bytes)?;

    // process foo
}
Commit count: 22

cargo fmt