caretta-sync/core/macros/tests/derive_mergeable.rs

33 lines
819 B
Rust
Raw Normal View History

2025-07-04 08:05:43 +09:00
use std::collections::{HashMap, HashSet};
2025-08-05 08:17:35 +09:00
use caretta_core::utils::mergeable::Mergeable;
use caretta_macros::Mergeable;
2025-07-04 08:05:43 +09:00
#[derive(Clone, Debug, PartialEq, Mergeable)]
struct MergeableStruct {
opt: Option<u8>,
}
#[cfg(test)]
fn test() {
let zero = MergeableStruct{
opt: Some(0),
};
let one = MergeableStruct {
opt: Some(1),
};
let none = MergeableStruct{
opt: None,
};
let mut zero_with_one = zero.clone();
zero_with_one.merge(one.clone());
let mut none_with_zero = none.clone();
none_with_zero.merge(zero.clone());
let mut zero_with_none = zero.clone();
zero_with_none.merge(none.clone());
assert_eq!(zero_with_one.clone(), one.clone());
assert_eq!(none_with_zero, zero.clone());
assert_eq!(zero_with_none, zero.clone());
}