跳转到内容

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;用量不参与该合并比较,保持为空。