sim_lib_bridge/
receipt.rs1use sim_codec_bridge::{BridgeHeader, BridgePacket, BridgePart, BridgeProvenance};
2use sim_kernel::{Expr, Result, Symbol};
3
4use crate::report::BridgeReport;
5
6pub fn receipt_symbol() -> Symbol {
8 Symbol::qualified("bridge", "receipt")
9}
10
11pub fn receipt_packet_for_report(
13 report: &BridgeReport,
14 from: impl Into<String>,
15) -> Result<BridgePacket> {
16 Ok(BridgePacket {
17 header: BridgeHeader {
18 cid: None,
19 move_kind: Symbol::new("receipt"),
20 from: from.into(),
21 to: Vec::new(),
22 role: Symbol::new("checker"),
23 parents: vec![report.packet_cid.clone()],
24 task: Symbol::new("R1"),
25 output: Symbol::new("R1"),
26 ceiling: Vec::new(),
27 context: Vec::new(),
28 provenance: BridgeProvenance::default(),
29 },
30 body: vec![BridgePart {
31 id: Symbol::new("R1"),
32 kind: Symbol::qualified("bridge", "Receipt"),
33 payload: Expr::Map(vec![sim_value::build::entry("report", report.to_expr())]),
34 }],
35 warrant: None,
36 })
37}