5个稳定版本

2.0.1 2023年4月29日
1.0.2 2021年7月24日

#5 in #serializer

Download history 54/week @ 2024-04-22 184/week @ 2024-04-29 237/week @ 2024-05-06 332/week @ 2024-05-13 372/week @ 2024-05-20 205/week @ 2024-05-27 456/week @ 2024-06-03 397/week @ 2024-06-10 232/week @ 2024-06-17 312/week @ 2024-06-24 288/week @ 2024-07-01 273/week @ 2024-07-08 434/week @ 2024-07-15 287/week @ 2024-07-22 280/week @ 2024-07-29 316/week @ 2024-08-05

1,317 每月下载量
2 crate中使用

MIT/Apache

18KB
231

heckcheck

一个极小的测试用例生成器

安装

$ cargo add heckcheck

示例

这是一个针对RGB序列化和解析器的基本往返测试,确保输出与原始输入匹配。

use heckcheck::prelude::*;

/// A color value encoded as Red-Green-Blue
#[derive(Clone, Debug, Arbitrary, PartialEq)]
pub struct Rgb {
    pub r: u8,
    pub g: u8,
    pub b: u8,
}

impl Rgb {
    /// Convert from RGB to Hexadecimal.
    pub fn to_hex(&self) -> String {
        format!("#{:02X}{:02X}{:02X}", self.r, self.g, self.b)
    }

    /// Convert from Hexadecimal to RGB.
    pub fn from_hex(s: String) -> Self {
        let s = s.strip_prefix('#').unwrap();
        Rgb {
            r: u8::from_str_radix(&s[0..2], 16).unwrap(),
            g: u8::from_str_radix(&s[2..4], 16).unwrap(),
            b: u8::from_str_radix(&s[4..6], 16).unwrap(),
        }
    }
}

// Validate values can be converted from RGB to Hex and back.
heckcheck::check(|rgb: Rgb| {
    let hex = rgb.to_hex();
    let res = Rgb::from_hex(hex);
    assert_eq!(rgb, res);
    Ok(())
});

安全性

此crate使用#![deny(unsafe_code)]来确保所有内容都在100%安全的Rust中实现。

贡献

想加入我们吗?查看我们的“贡献”指南并查看一些这些问题

许可协议

根据您的选择,受Apache License, Version 2.0MIT许可协议约束。
除非您明确说明,否则根据Apache-2.0许可协议定义的,您有意提交的任何贡献,都应按照上述方式双重许可,不附加任何其他条款或条件。

依赖关系

~645KB
~11K SLoC