2 个不稳定版本
0.2.0 | 2020年9月2日 |
---|---|
0.1.0 | 2020年2月1日 |
#2117 in Rust 模式
用于 2 个crate(通过 emerald-vault)
16KB
319 行
提供宏,允许创建简单的基于字节数组的结构体。这种结构体具有预定义的大小并在栈上分配。
用法
依赖项
[dependencies]
byte-array-struct = "0.2"
示例
// create struct named Address backed by [u8; 24]
// basically a shortcut to `pub struct Address([u8; 24]);`
byte_array_struct!(
pub struct Address(24);
);
impl Address {
// any additional functionality for Address type
}
// passed as a value on stack
fn send(to: Address) {
// ...
}
fn main() {
//accepts hex, which can also be prefixed with 0x
let foo = Address::from_str("0123456789abcdef0123456789abcdef0123456789abcdef").unwrap();
send(foo);
}
提供
宏为以下特性提供实现
.deref()
.from_str(s)
,接受长度为目标数组的十六进制字符串;可可选地以0x
前缀.to_string()
.from([u8; ...])
和.from(&[u8; ...])
,其中...
是定义的大小.try_from(Vec<u8>)
和.try_from(&[u8])
.into(Vec<u8>)
和.into([u8; ...])
.serialize
和.deserialize
用于 Serde,启用with-serde
功能(默认不启用)
功能
with-serde
用于使用 Serde 实现序列化和反序列化。使用十六进制编码字符串。
依赖
~19–290KB