halo-agent 0.1.0

Halo Agent and Workflow execution kernel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use super::*;

#[test]
fn workflow_run_does_not_inline_the_restore_machine() {
    let mut builder = WorkflowBuilder::new("future-boundary");
    builder.add_node("echo", crate::node::Echo).unwrap();
    builder.add_edge(graph::START, "echo").unwrap();
    builder.add_edge("echo", graph::END).unwrap();
    let mut engine = Engine::new(1001, builder.compile().unwrap()).unwrap();
    let ids: Arc<dyn Fn() -> i64 + Send + Sync> = Arc::new(|| 1);
    let future = engine.run_inner(Messages::default(), ids, crate::Cancellation::new());
    assert!(
        std::mem::size_of_val(&future) < 16 * 1024,
        "Workflow main Future: {} bytes",
        std::mem::size_of_val(&future)
    );
}