pub struct GenericNack {
pub sequence_number: u32,
pub command_status: u32,
pub status_name: String,
}Expand description
Represents a Generic NACK PDU.
Sent when a PDU cannot be identified or is malformed (e.g., invalid Command ID).
Fields§
§sequence_number: u32§command_status: u32§status_name: StringImplementations§
Source§impl GenericNack
impl GenericNack
Sourcepub fn new(status_name: &str, sequence_number: u32) -> Self
pub fn new(status_name: &str, sequence_number: u32) -> Self
Create a new Generic NACK.
§Examples
use smpp_codec::pdus::GenericNack;
let sequence_number: u32 = 1;
let nack = GenericNack::new("ESME_RINVCMDID", sequence_number);Examples found in repository?
examples/generic_nack.rs (lines 8-11)
3fn main() {
4 println!("=== SMPP Generic Nack Example ===");
5
6 // 1. Create Generic Nack
7 // Used when an invalid command_id is received (header decoding fails or unknown command)
8 let nack = GenericNack::new(
9 "ESME_RINVCMDID", // Status Name
10 500, // Sequence Number of the failed request
11 );
12
13 println!("Generic Nack: {:?}", nack);
14
15 // 2. Encode
16 let mut buf = Vec::new();
17 nack.encode(&mut buf).unwrap();
18 println!("Encoded {} bytes", buf.len());
19
20 // 3. Decode verification
21 let decoded = GenericNack::decode(&buf).unwrap();
22 println!("Decoded Command Status: 0x{:08X}", decoded.command_status);
23}Sourcepub fn encode(&self, writer: &mut impl Write) -> Result<(), PduError>
pub fn encode(&self, writer: &mut impl Write) -> Result<(), PduError>
Encode the struct into raw bytes for the network.
§Errors
Returns a PduError if an I/O error occurs while writing.
§Examples
let mut buffer = Vec::new();
nack.encode(&mut buffer).expect("Encoding failed");Examples found in repository?
examples/generic_nack.rs (line 17)
3fn main() {
4 println!("=== SMPP Generic Nack Example ===");
5
6 // 1. Create Generic Nack
7 // Used when an invalid command_id is received (header decoding fails or unknown command)
8 let nack = GenericNack::new(
9 "ESME_RINVCMDID", // Status Name
10 500, // Sequence Number of the failed request
11 );
12
13 println!("Generic Nack: {:?}", nack);
14
15 // 2. Encode
16 let mut buf = Vec::new();
17 nack.encode(&mut buf).unwrap();
18 println!("Encoded {} bytes", buf.len());
19
20 // 3. Decode verification
21 let decoded = GenericNack::decode(&buf).unwrap();
22 println!("Decoded Command Status: 0x{:08X}", decoded.command_status);
23}Sourcepub fn decode(buffer: &[u8]) -> Result<Self, PduError>
pub fn decode(buffer: &[u8]) -> Result<Self, PduError>
Decode raw bytes from the network into the struct.
§Errors
Returns a PduError if the buffer is too short.
§Examples
let decoded = GenericNack::decode(&buffer).expect("Decoding failed");
assert_eq!(decoded.status_name, "ESME_RINVCMDID");Examples found in repository?
examples/generic_nack.rs (line 21)
3fn main() {
4 println!("=== SMPP Generic Nack Example ===");
5
6 // 1. Create Generic Nack
7 // Used when an invalid command_id is received (header decoding fails or unknown command)
8 let nack = GenericNack::new(
9 "ESME_RINVCMDID", // Status Name
10 500, // Sequence Number of the failed request
11 );
12
13 println!("Generic Nack: {:?}", nack);
14
15 // 2. Encode
16 let mut buf = Vec::new();
17 nack.encode(&mut buf).unwrap();
18 println!("Encoded {} bytes", buf.len());
19
20 // 3. Decode verification
21 let decoded = GenericNack::decode(&buf).unwrap();
22 println!("Decoded Command Status: 0x{:08X}", decoded.command_status);
23}Trait Implementations§
Source§impl Clone for GenericNack
impl Clone for GenericNack
Source§fn clone(&self) -> GenericNack
fn clone(&self) -> GenericNack
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GenericNack
impl RefUnwindSafe for GenericNack
impl Send for GenericNack
impl Sync for GenericNack
impl Unpin for GenericNack
impl UnwindSafe for GenericNack
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more