23 个版本

0.8.0 2022 年 9 月 20 日
0.7.0 2021 年 1 月 5 日
0.6.1 2020 年 4 月 27 日
0.6.0 2020 年 3 月 16 日
0.1.0 2017 年 12 月 29 日

Rust 模式 中排名 #168

Download history 148913/week @ 2024-03-16 147910/week @ 2024-03-23 162178/week @ 2024-03-30 160757/week @ 2024-04-06 165067/week @ 2024-04-13 163492/week @ 2024-04-20 137798/week @ 2024-04-27 148153/week @ 2024-05-04 160828/week @ 2024-05-11 142147/week @ 2024-05-18 152591/week @ 2024-05-25 151812/week @ 2024-06-01 146051/week @ 2024-06-08 158259/week @ 2024-06-15 163239/week @ 2024-06-22 67290/week @ 2024-06-29

每月下载量 558,117
用于 2,069 包(直接使用 27 个)

MIT/Apache

38KB
845 行代码(不包括注释)

固定哈希

提供构建自定义固定大小哈希类型的宏。

示例

简单的 256 位(32 字节)哈希类型。

use fixed_hash::construct_fixed_hash;

construct_fixed_hash! {
    /// My 256 bit hash type.
    pub struct H256(32);
}

选择加入以在不同大小的哈希之间添加转换。

construct_fixed_hash!{ struct H256(32); }
construct_fixed_hash!{ struct H160(20); }
// auto-implement conversions between H256 and H160
impl_fixed_hash_conversions!(H256, H160);
// now use the generated conversions
assert_eq!(H256::from(H160::zero()), H256::zero());
assert_eq!(H160::from(H256::zero()), H160::zero());

可以为您的类型添加属性,例如使其可序列化。

construct_fixed_hash!{
    /// My serializable hash type.
    #[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))]
    struct H160(20);
}

特性

默认情况下,这是一个依赖于标准库的包。
对于 #[no_std] 环境,使用如下方式

fixed-hash = { version = "0.3", default-features = false }

可用特性

  • std:使用标准库而不是核心库。
    • 使用此特性可以启用以下特性
      • rustc-hex/std
      • rand/std
      • byteorder/std
    • 默认启用。
  • libc:使用 libc 实现 PartialEqOrd
    • 默认启用。
  • rand:提供基于 rand 包的 API。
    • 默认启用。
  • byteorder:提供基于 byteorder 包的 API。
    • 默认启用。
  • quickcheck:为哈希类型提供 quickcheck 实现。
    • 默认禁用。
  • api-dummy:为 API 文档生成一个模拟的哈希类型。
    • docs.rs 中默认启用。
  • arbitrary:允许从随机的非结构化输入中创建哈希。
    • 默认禁用。

依赖关系

~375–660KB
~11K 行代码