Crate smsir_rust

Crate smsir_rust 

Source
Expand description

§smsir-rust

Comprehensive, idiomatic, and extensible Rust client for the SMS.ir API.

§Modules

§Usage Example

§Example: Get Credit

use smsir_rust::{service::SmsIrServiceBuilder,error::SmsIrError};

#[tokio::main]
async fn main() -> Result<(), SmsIrError> {
    let service = SmsIrServiceBuilder::new("your_api_key")
        .timeout(std::time::Duration::from_secs(10))
        .build()?;
    let result = service.get_credit().await?;
    match result.data {
        Some(data) => println!("Your credit is: {}", data),
        None => println!("No credit data available."),
    }
    Ok(())
}

§Example: Send a Single SMS

use smsir_rust::{service::SmsIrServiceBuilder, error::SmsIrError};

#[tokio::main]
async fn main() -> Result<(), SmsIrError> {
    let service = SmsIrServiceBuilder::new("your_api_key").build()?;
    // Replace with your sender and receiver numbers
    let sender = "Sender number";
    let receiver = "Receiver number";
    let message = "Message text";
    // For single send, use bulk_send with one mobile
    let result = service.bulk_send(sender, message, &[receiver.to_string()], None).await?;
    match result.data {
        Some(data) => println!("Sent successfully: {:?}", data),
        None => println!("No response data."),
    }
    Ok(())
}

§Example: Send Verification SMS with Template

use smsir_rust::{service::SmsIrServiceBuilder, error::SmsIrError};
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), SmsIrError> {
    let service = SmsIrServiceBuilder::new("your_api_key").build()?;
    let receiver = "Receiver number";
    let template_id = 100000; // Replace with your template ID
    let params = vec![json!({"Code": "12345"})];
    let result = service.verify_send(receiver, template_id, &params).await?;
    match result.data {
        Some(data) => println!("Verification sent: {:?}", data),
        None => println!("No response data."),
    }
    Ok(())
}

Modules§

error
result
service