Skip to main content

Module prelude

Module prelude 

Source
Expand description

Common imports for building dataflow-rs engines and handlers.

use dataflow_rs::prelude::*; brings in the types you need for the 90% case: engine construction, custom handler authoring, message processing, error handling.

use dataflow_rs::prelude::*;
use serde_json::json;

let engine = Engine::builder()
    // .register("my_handler", MyHandler)
    .build()?;

let mut message = Message::builder()
    .payload_json(&json!({"order": {"total": 1500}}))
    .build();

engine.process_message(&mut message).await?;

Types not re-exported here (because they’re only needed for less-common flows): BoxedFunctionHandler, DynAsyncFunctionHandler, CompiledCustomInput, the named *Config structs (MapConfig, ValidationConfig, etc.), the trace surface (ExecutionTrace, ExecutionStep, StepResult), and the rules-engine aliases (Rule, Action, RulesEngine). Reach into the crate root for those.

Re-exports§

pub use crate::engine::error::DataflowError;
pub use crate::engine::error::ErrorInfo;
pub use crate::engine::error::Result;
pub use crate::engine::functions::AsyncFunctionHandler;
pub use crate::engine::message::AuditTrail;
pub use crate::engine::message::Change;
pub use crate::engine::message::Message;
pub use crate::engine::message::MessageBuilder;
pub use crate::engine::task_context::TaskContext;
pub use crate::engine::task_outcome::TaskOutcome;
pub use crate::engine::Engine;
pub use crate::engine::EngineBuilder;
pub use crate::engine::Task;
pub use crate::engine::Workflow;
pub use crate::engine::WorkflowStatus;