An open API service indexing awesome lists of open source software.

https://github.com/ryanavella/struct-pad

Padding types for Rust, to enable memory layout optimizations
https://github.com/ryanavella/struct-pad

padding padding-types rust

Last synced: 4 months ago
JSON representation

Padding types for Rust, to enable memory layout optimizations

Awesome Lists containing this project

README

          

# struct-pad

Padding types to enable memory layout optimizations.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/ryanavella/struct-pad/blob/master/LICENSE-MIT) [![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](https://github.com/ryanavella/struct-pad/blob/master/UNLICENSE) [![crates.io](https://img.shields.io/crates/v/struct-pad.svg?colorB=319e8c)](https://crates.io/crates/struct-pad) [![docs.rs](https://img.shields.io/badge/docs.rs-struct--pad-yellowgreen)](https://docs.rs/struct-pad)

## Example

```rust
use struct_pad::{Pad, PadU0, PadU8, PadU16, PadU32};

struct Example {
field1: u64,
field2: u8,
// Padding fields
pad1: PadU8,
#[cfg(target_pointer_width = "16")]
pad2: PadU0,
#[cfg(not(target_pointer_width = "16"))]
pad2: PadU16,
#[cfg(target_pointer_width = "64")]
pad3: PadU32,
#[cfg(not(target_pointer_width = "64"))]
pad3: PadU0,
}

impl Example {
const fn new(field1: u64, field2: u8) -> Self {
Self {
field1,
field2,
pad1: Pad::VALUE,
pad2: Pad::VALUE,
pad3: Pad::VALUE,
}
}
}
```