#endian #byteorder #order #byte #defined #type #default

no-std endian-type-rs

为具有定义字节序的类型提供类型安全的包装器

2个版本

使用旧Rust 2015

0.1.4 2020年5月28日
0.1.3 2020年5月28日

嵌入式开发中排名第775位

Download history 450/week @ 2024-04-10 326/week @ 2024-04-17 447/week @ 2024-04-24 332/week @ 2024-05-01 220/week @ 2024-05-08 205/week @ 2024-05-15 181/week @ 2024-05-22 386/week @ 2024-05-29 251/week @ 2024-06-05 222/week @ 2024-06-12 499/week @ 2024-06-19 1199/week @ 2024-06-26 615/week @ 2024-07-03 178/week @ 2024-07-10 367/week @ 2024-07-17 185/week @ 2024-07-24

每月下载量达1,557次
在2个crate中使用了(通过fdt-rs

MIT授权

9KB
181行代码(不包括注释)

endian-type-rs

endian-type的分支,包括对no-std和From特质的支持。

用法

将此添加到您的Cargo.toml

[dependencies.endian-type-rs]
version = "0.1.4"

并将此添加到您的crate根目录

extern crate endian_type_rs;

功能

此crate可以在不使用标准库的情况下使用(通过禁用默认的std功能)。在Cargo.toml中使用此功能

[dependencies.endian-type-rs]
version = "0.1.4"
default-features = false
# features = ["num"]    # <--- Uncomment if you wish to include support for num::ToPrimitive

启用"num"功能将通过num crate "num"添加额外的定义,以便简化转换。

以前在内部类型和另一个内置数字类型之间进行转换需要相当多的样板代码。在最坏的情况下,您需要指定当前Big/LittleEndian的底层类型以及您尝试转换到的类型。例如。

let val: u32_be = u32_be::from(10);
let addr = u32::from(val) as usize;

在这里,由于类型很明显,所以这里没有多少开销,但是如果您更改上述示例中"val"的底层类型,您必须更改每个转换。现在上述变为

let val: u32_be = u32_be::from(10);
let addr = val.to_usize().unwrap();

依赖关系

~73KB