5 个不稳定版本
0.3.0 | 2024年6月16日 |
---|---|
0.2.2 | 2024年5月6日 |
0.2.1 | 2023年6月14日 |
0.2.0 | 2023年6月14日 |
0.1.0 | 2022年8月15日 |
#737 在 测试 中
每月下载量 28
用于 vector-victor
27KB
485 代码行
泛型参数化
这个包提供了 parameterize
宏,允许为单元测试等应用参数化泛型函数。
例如:
use generic_parameterize::parameterize;
use std::fmt::Debug;
#[parameterize(T = (i32, f32), N = [4, 5, 6])]
#[test]
fn test_array<T: Default, const N: usize>() where [T; N]: Default + Debug {
let foo: [T; N] = Default::default();
println!("{:?}", foo)
}
生成一个名为 test_array
的模块,包含名为 test_array_i32_4
、test_array_i32_5
等函数。属性 #[test]
被复制到子函数中,这些函数随后调用 test_array
的副本。结果如下所示:
mod test_array {
use std::println;
fn test_array<T: Default, const N : usize>() where [T;N]: Default + std::fmt::Debug{
let foo: [T;N] = Default::default();
println!("{:?}", foo)
}
#[test]
fn test_array_i32_4() {test_array::<i32,4>();}
#[test]
fn test_array_f32_4() {test_array::<f32,4>();}
#[test]
fn test_array_i32_5() {test_array::<i32,5>();}
// etc...
}
依赖关系
~0.8–1.3MB
~27K SLoC