Skip to main content

sim_lib_web_layout/
cookbook.rs

1//! Deterministic cookbook builders for web layout recipes.
2
3use sim_kernel::{Expr, Symbol};
4
5use crate::{LayoutOp, apply_layout_op, new_workspace, workspace_scene};
6
7/// Build the workspace-pane Scene used by the cookbook recipe.
8pub fn workspace_pane_demo() -> Expr {
9    let workspace = apply_layout_op(
10        &new_workspace("builder"),
11        &LayoutOp::Open {
12            id: Symbol::new("pane-main"),
13            resource: Expr::Symbol(Symbol::qualified("resource", "article")),
14            lens: Symbol::new("view:default"),
15            dock: Symbol::new("center"),
16        },
17    )
18    .expect("workspace demo opens pane");
19    let scene = workspace_scene(&workspace);
20    debug_assert!(sim_lib_scene::validate_scene(&scene).is_ok());
21    scene
22}
23
24#[cfg(test)]
25mod tests {
26    use super::*;
27
28    #[test]
29    fn workspace_pane_demo_is_a_valid_scene() {
30        sim_lib_scene::validate_scene(&workspace_pane_demo()).expect("workspace scene validates");
31    }
32}