Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork62
Declarative binary reading and writing: bit-level, symmetric, serialization/deserialization
License
Apache-2.0, MIT licenses found
Licenses found
sharksforarms/deku
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Declarative binary reading and writing
This crate provides bit-level, symmetric, serialization/deserializationimplementations for structs and enums
Productivity: Deku will generate symmetric reader/writer functions for your type!Avoid the requirement of writing redundant, error-prone parsing and writing codefor binary structs or network headers
Compiler support: requires rustc 1.81+
[dependencies]deku ="0.19"
no_std:
[dependencies]deku = {version ="0.19",default-features =false,features = ["alloc"] }
Seedocumentation orexamples folder for more!
Read big-endian data into a struct, modify a value, and write it
use deku::prelude::*;#[derive(Debug,PartialEq,DekuRead,DekuWrite)]#[deku(endian ="big")]structDekuTest{#[deku(bits =4)]field_a:u8,#[deku(bits =4)]field_b:u8,field_c:u16,}fnmain(){let data:Vec<u8> =vec![0b0110_1001,0xBE,0xEF];let(_rest,mut val) =DekuTest::from_bytes((data.as_ref(),0)).unwrap();assert_eq!(DekuTest{ field_a:0b0110, field_b:0b1001, field_c:0xBEEF,}, val); val.field_c =0xC0FE;let data_out = val.to_bytes().unwrap();assert_eq!(vec![0b0110_1001,0xC0,0xFE], data_out);}
SeeCHANGELOG.md
About
Declarative binary reading and writing: bit-level, symmetric, serialization/deserialization
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.