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 无标准库
56 每月下载量
13KB
287 行
mem_cmp

在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