gpt4 book ai didi

rust - 是否可以仅在运行测试时为结构实现特征?

转载 作者:行者123 更新时间:2023-11-29 08:12:32 24 4
gpt4 key购买 nike

我正在使用 quickcheck并希望为结构实现 quickcheck::Arbitrary。此特征必须存在于定义该结构的同一文件/ crate 中,但我不希望它出现在发布二进制文件中。

pub struct c_struct {
pub i64_: i64,
pub u64_: u64,
pub u32_: u32,
}

// #[cfg(test)] does not work
impl quickcheck::Arbitrary for c_struct {
fn arbitrary<G: quickcheck::Gen>(g: &mut G) -> c_struct {
c_struct {
i64_: i64::arbitrary(g),
u64_: u64::arbitrary(g),
u32_: u32::arbitrary(g),
}
}
}

最佳答案

可以使用条件编译属性#[cfg()]这里:

pub struct c_struct {
pub i64_: i64,
pub u64_: u64,
pub u32_: u32,
}

#[cfg(test)]
impl quickcheck::Arbitrary for c_struct {
fn arbitrary<G: quickcheck::Gen>(g: &mut G) -> c_struct {
c_struct {
i64_: i64::arbitrary(g),
u64_: u64::arbitrary(g),
u32_: u32::arbitrary(g),
}
}
}

关于rust - 是否可以仅在运行测试时为结构实现特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42635556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com