Crate aligned [] [src]

Statically allocated arrays with guaranteed memory alignments

Examples

#![feature(const_fn)]

use std::mem;

use aligned::Aligned;

// Array aligned to a 2 byte boundary
static X: Aligned<u16, [u8; 3]> = Aligned([0; 3]);

// Array aligned to a 4 byte boundary
static Y: Aligned<u32, [u8; 3]> = Aligned([0; 3]);

// Unaligned array
static Z: [u8; 3] = [0; 3];

// You can allocate the aligned arrays on the stack too
let w: Aligned<u64, _> = Aligned([0u8; 3]);

assert_eq!(mem::align_of_val(&X), 2);
assert_eq!(mem::align_of_val(&Y), 4);
assert_eq!(mem::align_of_val(&Z), 1);
assert_eq!(mem::align_of_val(&w), 8);

Structs

Aligned

An ARRAY aligned to mem::align_of::<ALIGNMENT>() bytes

Traits

Alignment

IMPLEMENTATION DETAIL

Functions

Aligned

Aligned constructor