4个版本
0.1.3 | 2023年9月13日 |
---|---|
0.1.2 | 2023年8月25日 |
0.1.1 | 2023年7月31日 |
0.1.0 | 2023年7月31日 |
1862 在 进程宏
每月 1,186 次下载
用于 3 个crate
17KB
359 行
为 quickcheck::Arbitrary
提供宏。
扩展为在结构的每个字段上调用 Arbitrary::arbitrary
。
use derive_quickcheck_arbitrary::Arbitrary;
#[derive(Clone, Arbitrary)]
struct Yakshaver {
id: usize,
name: String,
}
您可以通过以下方式自定义字段生成:
- 提供一个接受
&mut quickcheck::Gen
的可调用对象。 - 始终使用默认值
#[derive(Clone, Arbitrary)]
struct Yakshaver {
/// Must be less than 10_000
#[arbitrary(gen(|g| num::clamp(usize::arbitrary(g), 0, 10_000) ))]
id: usize,
name: String,
#[arbitrary(default)]
always_false: bool,
}
您可以跳过枚举变体
#[derive(Clone, Arbitrary)]
enum YakType {
Domestic {
name: String,
},
Wild,
#[arbitrary(skip)]
Alien,
}
您可以添加泛型结构的边界
#[derive(Clone, Arbitrary)]
#[arbitrary(where(T: Arbitrary))]
struct GenericYak<T> {
name: T,
}
依赖项
~0.4–0.8MB
~19K SLoC