4 个版本
0.2.1 | 2024年6月20日 |
---|---|
0.2.0 | 2024年5月9日 |
0.1.1 | 2024年5月7日 |
0.1.0 | 2024年5月6日 |
#34 in #api-testing
15KB
60 行
已废弃 -> 新CRATE: SkippablePartialEq
lib.rs
:
在PartialEq自定义实现中忽略以特定后缀结尾的字段。
示例
use timeless_partialeq::TimelessPartialEq;
use chrono::{DateTime, TimeZone, Utc};
#[derive(Debug, TimelessPartialEq)]
#[exclude_suffix(at, date)]
pub struct Post {
pub id: i64,
pub content: String,
pub author: i32,
pub creation_date: DateTime<Utc>,
pub updated_at: Option<DateTime<Utc>>,
}
assert_eq!(
Post {
id: 1,
content: "test".to_string(),
author: 1,
creation_date: Utc.timestamp_millis_opt(1715017040672).unwrap(),
updated_at: Some(Utc.timestamp_millis_opt(1715017020672).unwrap()),
},
Post {
id: 1,
content: "test".to_string(),
author: 1,
creation_date: Utc::now(),
updated_at: Some(Utc::now()),
}
) // true
关于此crate
此crate是为了解决一个非常具体的问题:即使时间戳不同,也能断言两个对象的相等性。它还使我能够研究过程宏。然而,在我发布后仅一天,我就意识到它不仅可以用于时间戳。
我不会承诺快速迭代这个,但它确实在我的计划中,要扩大crate的范围。
依赖关系
~265–710KB
~17K SLoC