#alignment #static #include-bytes #aligned

无标准库 align-data

简单提高任何静态或include_bytes的对齐方式!

1 个不稳定版本

0.1.0 2020年9月6日

#174 in 无标准库

Download history 537/week @ 2024-03-16 373/week @ 2024-03-23 354/week @ 2024-03-30 476/week @ 2024-04-06 662/week @ 2024-04-13 299/week @ 2024-04-20 299/week @ 2024-04-27 655/week @ 2024-05-04 887/week @ 2024-05-11 444/week @ 2024-05-18 417/week @ 2024-05-25 458/week @ 2024-06-01 568/week @ 2024-06-08 348/week @ 2024-06-15 795/week @ 2024-06-22 147/week @ 2024-06-29

1,872 次每月下载
11 个crates中(7 直接)使用

MIT 许可证

6KB

Align Data

MIT License crates.io docs.rs

简单提高任何静态或include_bytes!的对齐方式。

示例

当通过include_bytes!包含原始数据时,通常直接将其解释为结构化数据,但并未根据结构化数据的对齐方式对包含的字节进行对齐。

这个crate修复了这个疏忽

use align_data::{include_aligned, Align4K};

static ALIGNED: &[u8] = include_aligned!(Align4K, "lib.rs");
assert_eq!(ALIGNED.as_ptr() as usize % 0x1000, 0);

任何常量表达式的值都可以被强制对齐到指定的对齐方式

use align_data::{aligned, Align16};

let five = aligned!(Align16, i32, 5);
assert_eq!(five as *const _ as usize % 0x10, 0);

许可证

根据MIT许可证许可,请参阅license.txt

贡献

除非你明确声明,否则任何有意提交以包含在你提供的作品中的贡献,均应按照上述方式许可,不附加任何额外条款或条件。

无运行时依赖