use mecha10::prelude::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
struct TestMessage {
id: u32,
data: String,
}
impl Message for TestMessage {}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
struct Detections {
objects: Vec<String>,
}
impl Message for Detections {}
fn main() {
println!("Dead Letter Queue Usage Examples");
println!("=================================");
println!();
println!("Dead Letter Queues capture failed messages to:");
println!("1. Prevent data loss");
println!("2. Enable debugging and analysis");
println!("3. Allow message replay after recovery");
println!("4. Prevent infinite retry loops");
println!();
println!("Key Features:");
println!("- In-memory storage with size limits");
println!("- Optional persistence to disk");
println!("- Statistics and monitoring");
println!("- Message replay capabilities");
println!("- Metadata for debugging");
println!();
println!("Examples:");
println!(" cargo run --example dlq_basic");
println!(" cargo run --example dlq_retry");
println!(" cargo run --example dlq_monitoring");
println!(" cargo run --example dlq_persistence");
println!(" cargo run --example dlq_categorized");
println!(" cargo run --example dlq_replay");
println!(" cargo run --example dlq_multi_queue");
}