Skip to main content

durable_lambda_trait/
prelude.rs

1//! User-facing re-exports for the trait-based approach.
2//!
3//! Single import for everything needed to write a durable Lambda handler:
4//!
5//! ```no_run
6//! use durable_lambda_trait::prelude::*;
7//! ```
8//!
9//! # Complete Minimal Handler
10//!
11//! ```no_run
12//! use durable_lambda_trait::prelude::*;
13//!
14//! struct MyHandler;
15//!
16//! #[async_trait::async_trait]
17//! impl DurableHandler for MyHandler {
18//!     async fn handle(
19//!         &self,
20//!         event: serde_json::Value,
21//!         mut ctx: TraitContext,
22//!     ) -> Result<serde_json::Value, DurableError> {
23//!         let result: Result<String, String> = ctx.step("greet", || async {
24//!             Ok("Hello from durable Lambda!".to_string())
25//!         }).await?;
26//!         Ok(serde_json::json!({ "greeting": result.unwrap() }))
27//!     }
28//! }
29//!
30//! #[tokio::main]
31//! async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
32//!     run(MyHandler).await
33//! }
34//! ```
35//!
36//! This re-exports:
37//! - [`DurableHandler`] — the trait for defining durable handlers
38//! - [`TraitContext`] — the context wrapper for durable operations
39//! - [`run`](crate::run) — the entry point for trait-based handlers
40//! - Core types: [`DurableError`], [`StepOptions`], [`CallbackOptions`], [`CallbackHandle`],
41//!   [`ExecutionMode`], [`CheckpointResult`]
42
43pub use crate::context::TraitContext;
44pub use crate::handler::{run, DurableHandler};
45pub use durable_lambda_core::error::DurableError;
46pub use durable_lambda_core::ops_trait::DurableContextOps;
47pub use durable_lambda_core::types::{
48    BatchItem, BatchItemStatus, BatchResult, CallbackHandle, CallbackOptions, CheckpointResult,
49    CompletionReason, ExecutionMode, MapOptions, ParallelOptions, StepOptions,
50};