desktop/src-tauri/crates/core/src/exchange.rs
第 1 条注释,第 1 行
desktop/src-tauri/crates/core/src/exchange.rs:1
//! 历史来源交换约定(M1a,data-contract.md#provenance):第 2 条注释,第 2 行
desktop/src-tauri/crates/core/src/exchange.rs:2
//! 版本化导出,以及重复、新修订、独立来源贡献和冲突的合并规则。第 3 条注释,第 3 行
desktop/src-tauri/crates/core/src/exchange.rs:3
//!(空行)第 4 条注释,第 4 行
desktop/src-tauri/crates/core/src/exchange.rs:4
//! 边界:第 5 条注释,第 5 行
desktop/src-tauri/crates/core/src/exchange.rs:5
//! 本模块定义格式、构建导出并比较记录;汇总写入由 exchange_import 实现。第 6 条注释,第 6 行
desktop/src-tauri/crates/core/src/exchange.rs:6
//! - 展示用 CSV/图表不满足本约定,不得被当作无损回导文件。第 7 条注释,第 7 行
desktop/src-tauri/crates/core/src/exchange.rs:7
//! - 批次身份(batch_id)只保证导入操作幂等,不替代来源记录身份。第 8 条注释,第 8 行
desktop/src-tauri/crates/core/src/exchange.rs:8
//! - 导出允许主机名别名化或省略(redact_hostnames),稳定来源键不重写。第 9 条注释,第 19 行
desktop/src-tauri/crates/core/src/exchange.rs:19
/// 导出类型:完整快照或增量。同一范围未出现于增量包不表示删除;第 10 条注释,第 20 行
desktop/src-tauri/crates/core/src/exchange.rs:20
/// 删除或整段替换语义由导出方在 `deletions` 中显式声明。第 11 条注释,第 26 行
desktop/src-tauri/crates/core/src/exchange.rs:26
/// 增量事件时间下界,单位毫秒;None 表示不限制增量下界。第 12 条注释,第 28 行
desktop/src-tauri/crates/core/src/exchange.rs:28
/// 显式删除/整段替换声明:被删除事件的 (source_instance_id, source_record_key)。第 13 条注释,第 29 行
desktop/src-tauri/crates/core/src/exchange.rs:29
/// 空表示无删除语义。第 14 条注释,第 38 行
desktop/src-tauri/crates/core/src/exchange.rs:38
/// 删除依据(如源端清理观察);不含正文。第 15 条注释,第 42 行
desktop/src-tauri/crates/core/src/exchange.rs:42
/// 来源主机注册信息。主机名可脱敏(别名化/省略),host_id 不重写。第 16 条注释,第 50 行
desktop/src-tauri/crates/core/src/exchange.rs:50
/// 来源实例注册信息(原始来源,导入机不得改成自己)。第 17 条注释,第 60 行
desktop/src-tauri/crates/core/src/exchange.rs:60
/// 选定字段的覆盖与能力 JSON,不含消息正文。第 18 条注释,第 66 行
desktop/src-tauri/crates/core/src/exchange.rs:66
/// 逐事件交换记录:来源 + 记录键构成逻辑唯一键;数值与完整性随记录走。第 19 条注释,第 93 行
desktop/src-tauri/crates/core/src/exchange.rs:93
/// 八个 token 字段可空(unknown 不补零)。第 20 条注释,第 95 行
desktop/src-tauri/crates/core/src/exchange.rs:95
/// 事件质量类别为 complete、partial、estimated 或 unknown,与逐字段质量分开。第 21 条注释,第 103 行
desktop/src-tauri/crates/core/src/exchange.rs:103
/// 与 usage_events 数值列一一对应;null = unknown。第 22 条注释,第 143 行
desktop/src-tauri/crates/core/src/exchange.rs:143
/// 日/封存分区(明细已清理时历史汇总仍可导出,保留来源与修订)。第 23 条注释,第 168 行
desktop/src-tauri/crates/core/src/exchange.rs:168
/// 小时层交换行(按配置保留;导入按 (tz,day,hour,dims) 键合并)。第 24 条注释,第 219 行
desktop/src-tauri/crates/core/src/exchange.rs:219
/// 完整导出包。第 25 条注释,第 224 行
desktop/src-tauri/crates/core/src/exchange.rs:224
/// 批次身份:同一批次重复导入幂等;不替代记录身份。第 26 条注释,第 231 行
desktop/src-tauri/crates/core/src/exchange.rs:231
/// 全部日分区,包含仍有明细的近期日期。聚合导入仅使用这些分区,第 27 条注释,第 232 行
desktop/src-tauri/crates/core/src/exchange.rs:232
/// 不把 records 再次相加;桌面聚合导出省略 records。第 28 条注释,第 235 行
desktop/src-tauri/crates/core/src/exchange.rs:235
/// 小时层(今日小时图在明细删除后的数据来源)。第 29 条注释,第 242 行
desktop/src-tauri/crates/core/src/exchange.rs:242
/// 导出请求。第 30 条注释,第 246 行
desktop/src-tauri/crates/core/src/exchange.rs:246
/// 事件时间范围为 [from_ms, to_ms),单位毫秒。第 31 条注释,第 249 行
desktop/src-tauri/crates/core/src/exchange.rs:249
/// None 选择全部来源;Some([]) 不选择任何来源。第 32 条注释,第 251 行
desktop/src-tauri/crates/core/src/exchange.rs:251
/// true 时省略主机名(导出脱敏)。第 33 条注释,第 257 行
desktop/src-tauri/crates/core/src/exchange.rs:257
/// 构建导出包(只读查询)。第 34 条注释,第 266 行
desktop/src-tauri/crates/core/src/exchange.rs:266
/// 桌面仅汇总交换包不包含原始请求和会话标识。第 35 条注释,第 302 行
desktop/src-tauri/crates/core/src/exchange.rs:302
// 包主机取本机身份;每个来源另存原始主机,避免再导出改写历史归属。第 36 条注释,第 327 行
desktop/src-tauri/crates/core/src/exchange.rs:327
// 来源注册:本导出涉及的实例(含其 origin_host_id 关联的原始注册信息)。第 37 条注释,第 384 行
desktop/src-tauri/crates/core/src/exchange.rs:384
// 事件明细。第 38 条注释,第 444 行
desktop/src-tauri/crates/core/src/exchange.rs:444
// 全部日分区(含近期未封存日期),保留来源、修订和完整性计数。第 39 条注释,第 502 行
desktop/src-tauri/crates/core/src/exchange.rs:502
// 小时层(有界:仅现存的;导入按修订合并)。第 40 条注释,第 606 行
desktop/src-tauri/crates/core/src/exchange.rs:606
/// 合并判定输入:现存记录元数据(导入侧从库中读出)。第 41 条注释,第 616 行
desktop/src-tauri/crates/core/src/exchange.rs:616
/// 合并判定结论(data-contract.md 合并规则表)。第 42 条注释,第 619 行
desktop/src-tauri/crates/core/src/exchange.rs:619
/// 新来源/新记录键(覆盖互斥):新增独立贡献;第 43 条注释,第 620 行
desktop/src-tauri/crates/core/src/exchange.rs:620
/// 跨源镜像仍按事件冲突选择规则去重;来源 ID 不同不代表可以直接相加。第 44 条注释,第 622 行
desktop/src-tauri/crates/core/src/exchange.rs:622
/// 同一来源记录键、同修订且内容一致:幂等跳过,重复导出/导入不增量。第 45 条注释,第 624 行
desktop/src-tauri/crates/core/src/exchange.rs:624
/// 修订号或生命周期确认较新的更正时,撤销旧贡献再替换;第 46 条注释,第 625 行
desktop/src-tauri/crates/core/src/exchange.rs:625
/// 无法确认修订顺序时不按 token 大小裁决,落 Conflict。第 47 条注释,第 627 行
desktop/src-tauri/crates/core/src/exchange.rs:627
/// 内容冲突且无法确定先后顺序时,保留现存记录并标记冲突。第 48 条注释,第 631 行
desktop/src-tauri/crates/core/src/exchange.rs:631
/// 逐记录合并复用 ingest 的选择顺序:修订号优先,其次生命周期;第 49 条注释,第 632 行
desktop/src-tauri/crates/core/src/exchange.rs:632
/// 同层级内容不同 → 冲突),保证交换判定与本地写入语义一致。第 50 条注释,第 670 行
desktop/src-tauri/crates/core/src/exchange.rs:670
/// 构造合并比较事件:仅比较身份、修订、生命周期与内容哈希,第 51 条注释,第 671 行
desktop/src-tauri/crates/core/src/exchange.rs:671
/// arbitrate 需要 EventInput;用量不参与该合并比较,保持为空。