24个发布版本
0.5.0-pre6 | 2024年1月1日 |
---|---|
0.5.0-pre5 | 2023年12月15日 |
0.5.0-pre2 | 2023年11月4日 |
0.5.0-alpha.8 | 2024年8月11日 |
0.3.1 | 2021年7月6日 |
#72 in 编码
1,240,167 每月下载量
在 439 个crate(5个直接使用)中使用
79KB
2K SLoC
rend是一个库,它为Rust提供端序感知原语。
rend的实际应用
use rend::*;
let little_int = i32_le::from_native(0x12345678);
// Internal representation is little-endian
assert_eq!(
[0x78, 0x56, 0x34, 0x12],
unsafe { ::core::mem::transmute::<_, [u8; 4]>(little_int) }
);
// Can also be made with `.into()`
let little_int: i32_le = 0x12345678.into();
// Still formats correctly
assert_eq!("305419896", format!("{}", little_int));
assert_eq!("0x12345678", format!("0x{:x}", little_int));
let big_int = i32_be::from_native(0x12345678);
// Internal representation is big-endian
assert_eq!(
[0x12, 0x34, 0x56, 0x78],
unsafe { ::core::mem::transmute::<_, [u8; 4]>(big_int) }
);
// Can also be made with `.into()`
let big_int: i32_be = 0x12345678.into();
// Still formats correctly
assert_eq!("305419896", format!("{}", big_int));
assert_eq!("0x12345678", format!("0x{:x}", big_int));
lib.rs
:
rend
rend是一个库,它为Rust提供跨平台的原语。
rend不提供跨平台的替代类型,例如内置跨平台的类型如bool
和u8
。它也不提供具有架构相关大小的类型的跨平台类型,如isize
和usize
。rend不支持自定义类型。
rend旨在用于构建可以在不同架构之间共享的可移植类型,特别是具有零拷贝反序列化的类型。
特性
bytecheck
:启用使用bytecheck
验证类型的支持
示例
use rend::*;
let little_int = i32_le::from_native(0x12345678);
// Internal representation is little-endian
assert_eq!(
[0x78, 0x56, 0x34, 0x12],
unsafe { ::core::mem::transmute::<_, [u8; 4]>(little_int) }
);
// Can also be made with `.into()`
let little_int: i32_le = 0x12345678.into();
// Still formats correctly
assert_eq!("305419896", format!("{}", little_int));
assert_eq!("0x12345678", format!("0x{:x}", little_int));
let big_int = i32_be::from_native(0x12345678);
// Internal representation is big-endian
assert_eq!(
[0x12, 0x34, 0x56, 0x78],
unsafe { ::core::mem::transmute::<_, [u8; 4]>(big_int) }
);
// Can also be made with `.into()`
let big_int: i32_be = 0x12345678.into();
// Still formats correctly
assert_eq!("305419896", format!("{}", big_int));
assert_eq!("0x12345678", format!("0x{:x}", big_int));
依赖项
~125KB