tramli 1.2.0

Constrained flow engine — state machines that prevent invalid transitions at build time
Documentation
//! # tramli
//!
//! Constrained flow engine — state machines that prevent invalid transitions at build time.
//! Intentionally synchronous. See `docs/async-integration.md` for async I/O patterns.

mod clone_any;
mod context;
mod data_flow_graph;
mod definition;
mod engine;
mod error;
mod instance;
mod mermaid;
mod store;
pub mod sub_flow;
mod types;

pub use clone_any::CloneAny;
pub use context::FlowContext;
pub use data_flow_graph::{DataFlowGraph, NodeInfo};
pub use definition::{FlowDefinition, Builder, FromBuilder, BranchBuilder, SubFlowBuilder};
pub use engine::FlowEngine;
pub use error::FlowError;
pub use instance::FlowInstance;
pub use mermaid::MermaidGenerator;
pub use store::{InMemoryFlowStore, TransitionRecord};
pub use types::*;

#[macro_export]
macro_rules! requires {
    ($($t:ty),* $(,)?) => {
        vec![$(std::any::TypeId::of::<$t>()),*]
    }
}