#macro-derive #swapping #structures #enums #field #type #endianess

swapbytes

用于交换结构体字节序的Crate

4个版本

0.2.1 2023年11月21日
0.2.0 2023年11月21日
0.1.1 2023年11月21日
0.1.0 2023年11月20日

#824 in Rust模式

Download history 98/week @ 2024-03-25 7/week @ 2024-04-01 114/week @ 2024-06-10

每月114次下载

MIT协议

5KB
75

Swapbytes

License Cargo Version Cargo Downloads

使用derive宏交换结构体字节序的Rust库

Cargo

使用swapbytes与Cargo结合使用

[dependencies]
swapbytes = "0.2"

cargo add swapbytes
use swapbytes::SwapBytes;

#[derive(SwapBytes)]
pub struct Test {
    pub a: u32,
    pub b: u32,
    /// Skip this field
    #[sb(skip)]
    pub b: String,
}

let mut value: Test = Test { a: 1, b: 4 };
value.swap_bytes_mut();


/* Enum must implement Clone, Copy */
#[derive(SwapBytes, Clone, Copy)]
#[repr(u32)] /* Only number repr types are supported */
pub enum ReprEnum {
    A = 1,
    B = 2
}

依赖项

~0.6–1MB
~25K SLoC