4 releases

0.2.1 Nov 21, 2023
0.2.0 Nov 21, 2023
0.1.1 Nov 21, 2023
0.1.0 Nov 20, 2023

#1204 in Rust patterns

MIT license

5KB
75 lines

Swapbytes

License Cargo Version Cargo Downloads

Rust library for swapping the endianess of a structure using a derive macro

Cargo

Using swapbytes with cargo

[dependencies]
swapbytes = "0.2"

or

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
}

Dependencies

~0.5–1MB
~22K SLoC