ippanel-sms 0.1.0

A professional, asynchronous Rust client library for the IPPANEL SMS web service.
Documentation
//! # ippanel-sms
//!
//! A Rust library for interacting with the IPPanel SMS web service.
//!
//! ## Features
//! - Send single or bulk SMS messages
//! - Send pattern-based (templated) messages
//! - Fetch message statuses and details
//! - Create message patterns
//! - Retrieve account credit
//! - Fetch inbox messages
//! - Fully asynchronous
//! - Strongly typed models for all API responses
//!
//! ## Examples
//!
//! ### Get Account Credit
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let credit = client.get_credit().await.unwrap();
//! println!("Credit: {}", credit);
//! # });
//! ```
//!
//! ### Send SMS
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let message_id = client.send("5000", &["09120000000"], "Hello from Rust!", "Test").await.unwrap();
//! println!("Message ID: {}", message_id);
//! # });
//! ```
//!
//! ### Get Message Info
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let msg = client.get_message(123456).await.unwrap();
//! println!("Message: {:?}", msg);
//! # });
//! ```
//!
//! ### Fetch Statuses
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let (statuses, page) = client.fetch_statuses(123456, 0, 10).await.unwrap();
//! println!("Statuses: {:?}, Page: {:?}", statuses, page);
//! # });
//! ```
//!
//! ### Fetch Inbox
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let (inbox, page) = client.fetch_inbox(1, 10).await.unwrap();
//! println!("Inbox: {:?}, Page: {:?}", inbox, page);
//! # });
//! ```
//!
//! ### Create Pattern
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let code = client.create_pattern("Your code is %code%", "Verification", &[("code".to_string(), "string".to_string())], "%", false).await.unwrap();
//! println!("Pattern code: {}", code);
//! # });
//! ```
//!
//! ### Send Pattern
//! ```no_run
//! use ippanel_sms::IppanelClient;
//! # tokio_test::block_on(async {
//! let client = IppanelClient::new(Some("YOUR_API_KEY".to_string()), None);
//! let message_id = client.send_pattern("PATTERN_CODE", "5000", "09120000000", &[("code".to_string(), "1234".to_string())]).await.unwrap();
//! println!("Pattern message ID: {}", message_id);
//! # });
//! ```
//!
//! More documentation: [GitHub](https://github.com/rustsi/ippanel-sms)

pub mod error;
pub mod client;
pub mod models;

pub use error::*;
pub use client::*;
pub use models::*;