sim_lib_view_bridge/
cookbook.rs1use sim_codec_bridge::{
4 BridgeHeader, BridgePacket, BridgePart, BridgeProvenance, BridgeReceiptPayload,
5 stamp_packet_cid,
6};
7use sim_kernel::{Cx, DefaultFactory, EagerPolicy, Expr, Symbol};
8use sim_lib_view::surface::SurfaceCaps;
9use std::sync::Arc;
10
11pub fn packet_review_demo() -> Expr {
13 let mut cx = Cx::new(Arc::new(EagerPolicy), Arc::new(DefaultFactory));
14 let packet = sample_packet();
15 let caps = SurfaceCaps::from_preset("desktop", "cookbook").expect("desktop caps exist");
16 crate::bridge_packet_view(&mut cx, &packet, &caps).expect("demo packet renders")
17}
18
19fn sample_packet() -> BridgePacket {
20 stamp_packet_cid(&BridgePacket {
21 header: BridgeHeader {
22 cid: None,
23 move_kind: Symbol::new("receipt"),
24 from: "model:judge".to_owned(),
25 to: vec!["human:reviewer".to_owned(), "model:drafter".to_owned()],
26 role: Symbol::new("judge"),
27 parents: vec!["core/sha256-bridge-v1:merged#move=reply".to_owned()],
28 task: Symbol::new("Rc1"),
29 output: Symbol::new("Rc1"),
30 ceiling: Vec::new(),
31 context: Vec::new(),
32 provenance: BridgeProvenance::default(),
33 },
34 body: vec![BridgePart {
35 id: Symbol::new("Rc1"),
36 kind: Symbol::qualified("bridge", "Receipt"),
37 payload: BridgeReceiptPayload::new(
38 Symbol::new("accepted"),
39 vec!["body/O2/payload".to_owned()],
40 )
41 .to_expr(),
42 }],
43 warrant: None,
44 })
45 .expect("sample packet stamps")
46}
47
48#[cfg(test)]
49mod tests {
50 #[test]
51 fn packet_review_demo_is_a_scene() {
52 let scene = super::packet_review_demo();
53 sim_lib_scene::validate_scene(&scene).expect("demo scene validates");
54 }
55}