From a43515410862c35d80511479062a3e124c472ac5 Mon Sep 17 00:00:00 2001 From: boris Date: Sat, 3 Oct 2026 21:34:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E8=B4=A6=E7=B0=BF=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=B8=AD=E6=A0=87=E6=98=8E=E5=B7=AE=E5=BC=82?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=B8=94=E4=BF=9D=E7=95=99=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/fidc-core/src/manual_corporate_replay.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/fidc-core/src/manual_corporate_replay.rs b/crates/fidc-core/src/manual_corporate_replay.rs index 42027a1..3f35049 100644 --- a/crates/fidc-core/src/manual_corporate_replay.rs +++ b/crates/fidc-core/src/manual_corporate_replay.rs @@ -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::>().into_iter().filter(|key| expected.get(*key)!=reference_identity.get(*key)) + .cloned().collect::>().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(