smpp-codec 0.2.1

A comprehensive SMPP v5 protocol codec for Rust.
Documentation
use smpp_codec::common::{BindMode, Npi, Ton};
use smpp_codec::pdus::BindRequest;

fn main() {
    println!("=== SMPP Bind Transceiver Example ===");

    // 1. Create a BindTransceiver Request
    let bind_req = BindRequest::new(
        1, // Sequence Number
        BindMode::Transceiver,
        "my_system_id".to_string(),
        "password".to_string(),
    )
    .with_address_range(Ton::International, Npi::Isdn, "12345".to_string());

    println!("Created PDU: {:?}", bind_req);

    // 2. Encode into bytes
    let mut buffer = Vec::new();
    match bind_req.encode(&mut buffer) {
        Ok(_) => {
            println!("Encoded successfully! {} bytes", buffer.len());
            print!("Hex encoded: ");
            for byte in &buffer {
                print!("{:02X} ", byte);
            }
            println!();
        }
        Err(e) => {
            eprintln!("Failed to encode: {:?}", e);
        }
    }
}