cuisiner

Crates.iocuisiner
lib.rscuisiner
version0.0.6
created_at2025-03-25 00:36:59.174555+00
updated_at2025-04-04 05:40:45.590482+00
descriptionCook up some conversions to and from C-style binary layouts.
homepage
repositoryhttps://github.com/andogq/cuisiner
max_upload_size
id1604598
size46,177
Tom Anderson (andogq)

documentation

README

cuisiner

Cook up some conversions to and from C-style binary layouts.

Cuisiner provides traits and macros to create idiomatic Rust structures that can be seamlessly converted to and from C-style binary representations, even if it has a different layout.

Overview

Cuisiner centres on the derivable Cuisiner trait, which provides the 'raw' serialised type (via the Raw associated type), and methods used to serialise and deserialise from the raw value. The raw representation must align with the C representation of the structure, whilst the try_from_raw and try_to_raw methods can handle validation when converting to and from the idiomatic Rust representation.

Example

See sqlite-header.rs for an example.

Todo

  • Mirror zerocopy's API for reading to/from bytes (read_prefix, read_suffix, etc)

  • Add support for reading from Readable

Commit count: 45

cargo fmt