1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! # chorus-core
//!
//! Core traits, types, and routing engine for Chorus CPaaS.
//!
//! Chorus provides SMS and Email delivery with smart routing, multi-provider
//! failover, and cost optimization through waterfall routing (email-first,
//! SMS-fallback).
//!
//! ## Key Components
//!
//! - [`Chorus`](client::Chorus) — Main client with builder pattern
//! - [`SmsSender`](sms::SmsSender) / [`EmailSender`](email::EmailSender) — Provider traits
//! - [`WaterfallRouter`](router::WaterfallRouter) — Cost-optimized routing engine
//! - [`Template`](template::Template) — `{{variable}}` template rendering
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use chorus_core::client::Chorus;
//! use chorus_core::types::SmsMessage;
//! use std::sync::Arc;
//!
//! # async fn example() -> Result<(), chorus_core::error::ChorusError> {
//! let chorus = Chorus::builder()
//! // .add_sms_provider(Arc::new(my_provider))
//! .default_from_sms("+1234567890".into())
//! .build();
//!
//! let msg = SmsMessage {
//! to: "+0987654321".into(),
//! body: "Hello from Chorus!".into(),
//! from: None,
//! };
//! let result = chorus.send_sms(&msg).await?;
//! # Ok(())
//! # }
//! ```