use smpp_codec::pdus::DataSm;
fn main() {
println!("=== SMPP Data SM Example ===");
let mut req = DataSm::new(
3001,
"AppServer".to_string(),
"MobileClient".to_string(),
b"Session Data Payload".to_vec(),
);
req.service_type = "WAP".to_string();
req.registered_delivery = 1;
let mut buffer = Vec::new();
match req.encode(&mut buffer) {
Ok(_) => println!("Successfully encoded DataSm PDU: {} bytes", buffer.len()),
Err(e) => eprintln!("Failed to encode PDU: {:?}", e),
}
match DataSm::decode(&buffer) {
Ok(decoded) => {
println!("Successfully decoded PDU.");
println!(" Sequence: {}", decoded.sequence_number);
println!(" Service Type: {}", decoded.service_type);
println!(" Registered Delivery: {}", decoded.registered_delivery);
println!(" Optional Params Count: {}", decoded.optional_params.len());
}
Err(e) => eprintln!("Failed to decode PDU: {:?}", e),
}
}