14 releases
Uses new Rust 2024
| 0.4.3 | Dec 15, 2025 |
|---|---|
| 0.4.2 | Mar 24, 2024 |
| 0.4.1 | May 13, 2022 |
| 0.4.0 | Jul 24, 2021 |
| 0.1.1 | May 30, 2017 |
#16 in Embedded development
1,630,308 downloads per month
Used in 678 crates
(18 directly)
28KB
728 lines
A newtype with alignment of at least A bytes
Examples
use std::mem;
use aligned::{Aligned, A2, A4, A16};
// Array aligned to a 2 byte boundary
static X: Aligned<A2, [u8; 3]> = Aligned([0; 3]);
// Array aligned to a 4 byte boundary
static Y: Aligned<A4, [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<A16, _> = 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), 16);
aligned
A newtype with alignment of at least
Abytes
License
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.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~16KB