Rust Bitfield Serializer
A Rust library for defining and serializing bitfield structures with macro support.
Features
- π Macro-based bitfield definition - Define bitfields with simple macros
- π¦ Flexible serialization - Serialize bitfields to binary format
- π§ Type safety - Compile-time type checking for bitfield operations
- π Multiple data types - Support for u8, u16, u32, and custom types
- π― Zero-copy operations - Efficient memory usage
- π Comprehensive API - Easy-to-use traits and utilities
- π Bidirectional - Both serialization and deserialization
- π‘οΈ Error handling - Robust error handling for invalid data
Quick Start
Add this to your Cargo.toml:
[]
= "0.1.0"
Usage Examples
Using Macros (Recommended)
use ;
// Define a simple bitfield using macro
bitfield!
Manual Definition
use ;
API Documentation
Core Traits
BitfieldSerialize- Provides serialization and deserialization methodsBitfieldSize- Provides size calculation methods
Utilities
BitReader- Efficient bit-level reading operationsBitWriter- Efficient bit-level writing operationsBitfieldSerializer- Main serialization engine
Types
BitField- Individual field definitionBitfieldStruct- Container for multiple fieldsFieldType- Enumeration of supported field typesFieldValue- Enumeration of field values
Advanced Features
Complex Bitfields
bitfield!
Error Handling
match bitfield.serialize
Performance
This library is designed for high performance with:
- Zero-copy operations where possible
- Efficient bit manipulation
- Minimal memory allocations
- Compile-time optimizations
License
This project is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Changelog
v0.1.0
- Initial release
- Basic bitfield definition and serialization
- Macro support
- Core traits and utilities