在账簿覆盖错误中标明差异字段且保留完整校验

This commit is contained in:
boris
2026-10-03 21:34:20 +08:00
parent b331d41c31
commit a435154108
@@ -174,12 +174,16 @@ impl ManualCorporateReplay {
let expected = current.financial_replay_identity();
let reference_identity = reference.financial_replay_identity();
if reference_identity != expected {
let differing = expected.as_object().into_iter().flat_map(|value| value.keys())
.chain(reference_identity.as_object().into_iter().flat_map(|value| value.keys()))
.collect::<BTreeSet<_>>().into_iter().filter(|key| expected.get(*key)!=reference_identity.get(*key))
.cloned().collect::<Vec<_>>().join(",");
return Err(format!(
"manual corporate ledger coverage mismatch: symbol={} observed_at={} expected={} replayed={}",
"manual corporate ledger coverage mismatch: symbol={} observed_at={} expected={} replayed={} differing_fields={}",
observation.order.symbol,
observation.fill.observed_at,
digest(&expected)?,
digest(&reference_identity)?
digest(&reference_identity)?, differing
));
}
let replayed = self.replay(