2 个不稳定版本

0.2.0 2020年9月2日
0.1.0 2020年2月1日

#2117 in Rust 模式


用于 2 个crate(通过 emerald-vault

Apache-2.0

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