5个版本

使用旧Rust 2015

0.1.4 2017年9月26日
0.1.3 2017年8月24日
0.1.2 2017年8月22日
0.1.1 2017年8月22日
0.1.0 2017年8月22日

#356 in 无标准库

Download history 12/week @ 2024-02-20 25/week @ 2024-02-27 28/week @ 2024-03-05 14/week @ 2024-03-12 18/week @ 2024-03-19 12/week @ 2024-03-26 66/week @ 2024-04-02 5/week @ 2024-04-16 1/week @ 2024-05-07 14/week @ 2024-05-14 31/week @ 2024-05-21 10/week @ 2024-05-28

56 每月下载量

MIT/Apache

13KB
287

mem_cmp Crates.io 下载 构建状态

在Rust中安全地进行类型间的内存比较。

文档

许可证

该项目可以选择以下任一方式发布:

任由您选择。


lib.rs:

类型间的安全内存比较。

此crate中找到的类型作为memcmp操作的的安全包装。

用法

此crate可在crates.io上找到,可以通过将以下内容添加到您的项目Cargo.toml中来进行使用

[dependencies]
mem_cmp = "0.1.4"

并将此内容添加到crate根目录

extern crate mem_cmp;

比较内存

MemOrd特质通过返回一个Ordering来提供对memcmp调用结果的便利。

如果唯一关心的是相等性,MemEq也是可用的。

use mem_cmp::*;

let a = [0u8; 256];
let b = [0u32; 64];
let c = [4u32; 64];

assert!(a.mem_eq(&b));
assert!(a.mem_neq(&c));

// Also works with types of different sizes:
assert!(a.mem_neq(&42));

安全性

通常,直接比较内存是安全的。然而,在有些情况下可能会遇到未定义的行为。

  • 具有填充的类型

    这种情况之一是与内部值填充以进行对齐的类型。这种类型将是(u8, u32)。它有4字节的对齐,导致在第一个值和第二个值之间有3个字节的填充。填充的字节值由编译器来决定。

依赖关系

~38KB