Crates.io | orio |
lib.rs | orio |
version | 0.6.0 |
source | src |
created_at | 2023-11-01 05:41:42.303438 |
updated_at | 2024-06-05 01:52:44.611552 |
description | Small serialization library |
homepage | |
repository | https://gitgud.io/deltanedas/orio |
max_upload_size | |
id | 1020639 |
size | 26,135 |
Lightweight and clean alternative to serde, focusing on writing to and from Vec<u8>
s.
#[derive(Io)]
struct Thingy {
#[io(len(u16))]
name: String,
kind: ThingyKind,
#[io(ignore)]
debug: String
}
#[derive(Io)]
enum ThingyKind {
Normal,
Special(#[io(len(u8))] String)
}
let thingy = Thingy {
name: "thing".to_owned(),
kind: ThingyKind::Normal,
debug: "not written".to_owned()
}
let mut bytes = vec![];
thingy.write(&mut bytes);
Under the hood its a generic wrapper over little-endian byteorder with a derive macro for structs and enums to use.
Named after the cookie :)