pub trait Encode: Length {
// Required method
fn encode(&self, dst: &mut [u8]) -> usize;
}Expand description
Trait for encoding SMPP values into a slice.
§Implementation
struct Foo {
a: u8,
b: u16,
c: u32,
}
impl Length for Foo {
fn length(&self) -> usize {
self.a.length() + self.b.length() + self.c.length()
}
}
impl Encode for Foo {
fn encode(&self, dst: &mut [u8]) -> usize {
let mut size = 0;
size += self.a.encode(&mut dst[size..]);
size += self.b.encode(&mut dst[size..]);
size += self.c.encode(&mut dst[size..]);
size
}
}
let foo = Foo {
a: 0x01,
b: 0x0203,
c: 0x04050607,
};
let buf = &mut [0u8; 1024];
assert!(buf.len() >= foo.length());
let size = foo.encode(buf);
let expected = &[0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07];
assert_eq!(size, 7);
assert_eq!(&buf[..size], expected);Required Methods§
Sourcefn encode(&self, dst: &mut [u8]) -> usize
fn encode(&self, dst: &mut [u8]) -> usize
Encode a value to a slice
Implementors are allowed to panic if the slice is not big enough to hold the encoded value. If dst.len() < Length::length
Implementations on Foreign Types§
Implementors§
impl Encode for CommandId
impl Encode for CommandStatus
impl Encode for rusmpp_core::pdus::owned::Pdu
Available on crate feature
alloc only.impl Encode for rusmpp_core::tlvs::borrowed::TlvValue<'_>
impl Encode for TlvTag
impl Encode for rusmpp_core::tlvs::owned::TlvValue
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::borrowed::DestAddress<'_>
impl Encode for AddrSubunit
impl Encode for AlertOnMessageDelivery
impl Encode for Ansi41Specific
impl Encode for BearerType
impl Encode for BroadcastAreaFormat
impl Encode for BroadcastAreaSuccess
impl Encode for BroadcastChannelIndicator
impl Encode for BroadcastMessageClass
impl Encode for CongestionState
impl Encode for DataCoding
impl Encode for DeliveryFailureReason
impl Encode for DestAddrNpResolution
impl Encode for DestFlag
impl Encode for DisplayTime
impl Encode for DpfResult
impl Encode for EncodingContentType
impl Encode for ErrorCodeNetworkType
impl Encode for GsmFeatures
impl Encode for Indicator
impl Encode for InterfaceVersion
impl Encode for IntermediateNotification
impl Encode for ItsReplyType
impl Encode for LanguageIndicator
impl Encode for MCDeliveryReceipt
impl Encode for MessageState
impl Encode for MessageType
impl Encode for MessagingMode
impl Encode for MoreMessagesToSend
impl Encode for MsAvailabilityStatus
impl Encode for MsValidityBehavior
impl Encode for NetworkType
impl Encode for Npi
impl Encode for NumberOfMessages
impl Encode for PayloadType
impl Encode for Presentation
impl Encode for PrivacyIndicator
impl Encode for ReplaceIfPresentFlag
impl Encode for Screening
impl Encode for SetDpf
impl Encode for SmeOriginatedAcknowledgement
impl Encode for SubaddressTag
impl Encode for Ton
impl Encode for TypeOfMessage
impl Encode for TypeOfNetwork
impl Encode for UnitOfTime
impl Encode for UnitsOfTime
impl Encode for UssdServiceOp
impl Encode for rusmpp_core::values::owned::DestAddress
Available on crate feature
alloc only.impl Encode for rusmpp_core::command::owned::Command
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::AlertNotification
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindReceiver
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindReceiverResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindTransceiver
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindTransceiverResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindTransmitter
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BindTransmitterResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BroadcastSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::BroadcastSmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::CancelBroadcastSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::CancelSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::DataSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::DataSmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::DeliverSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::DeliverSmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::Outbind
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::QueryBroadcastSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::QueryBroadcastSmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::QuerySm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::QuerySmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::ReplaceSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::SubmitMulti
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::SubmitMultiResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::SubmitSm
Available on crate feature
alloc only.impl Encode for rusmpp_core::pdus::owned::SubmitSmResp
Available on crate feature
alloc only.impl Encode for rusmpp_core::tlvs::owned::Tlv
Available on crate feature
alloc only.impl Encode for rusmpp_core::types::borrowed::AnyOctetString<'_>
impl Encode for rusmpp_core::types::owned::AnyOctetString
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::BroadcastAreaIdentifier
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::DistributionListName
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::MessagePayload
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::ServiceType
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::SmeAddress
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::Subaddress
Available on crate feature
alloc only.impl Encode for rusmpp_core::values::owned::UnsuccessSme
Available on crate feature
alloc only.impl Encode for BroadcastContentType
impl Encode for BroadcastFrequencyInterval
impl Encode for BroadcastRepNum
impl Encode for CallbackNumPresInd
impl Encode for EsmClass
impl Encode for ItsSessionInfo
impl Encode for MsMsgWaitFacilities
impl Encode for MsValidity
impl Encode for MsValidityInformation
impl Encode for NetworkErrorCode
impl Encode for PriorityFlag
impl Encode for RegisteredDelivery
impl Encode for UserMessageReference
impl<'a> Encode for rusmpp_core::pdus::borrowed::AlertNotification<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindReceiver<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindReceiverResp<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindTransceiver<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindTransceiverResp<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindTransmitter<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::BindTransmitterResp<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::CancelSm<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::Outbind<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::QueryBroadcastSm<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::QuerySm<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::QuerySmResp<'a>
impl<'a> Encode for rusmpp_core::pdus::borrowed::ReplaceSm<'a>
impl<'a> Encode for rusmpp_core::tlvs::borrowed::Tlv<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::BroadcastAreaIdentifier<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::DistributionListName<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::MessagePayload<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::ServiceType<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::SmeAddress<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::Subaddress<'a>
impl<'a> Encode for rusmpp_core::values::borrowed::UnsuccessSme<'a>
impl<'a, const N: usize> Encode for rusmpp_core::command::borrowed::Command<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::BroadcastSm<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::BroadcastSmResp<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::CancelBroadcastSm<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::DataSm<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::DataSmResp<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::DeliverSm<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::DeliverSmResp<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::QueryBroadcastSmResp<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::SubmitMulti<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::SubmitMultiResp<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::SubmitSm<'a, N>
impl<'a, const N: usize> Encode for rusmpp_core::pdus::borrowed::SubmitSmResp<'a, N>
impl<const MIN: usize, const MAX: usize> Encode for rusmpp_core::types::borrowed::COctetString<'_, MIN, MAX>
impl<const MIN: usize, const MAX: usize> Encode for rusmpp_core::types::borrowed::OctetString<'_, MIN, MAX>
impl<const MIN: usize, const MAX: usize> Encode for rusmpp_core::types::owned::COctetString<MIN, MAX>
Available on crate feature
alloc only.impl<const MIN: usize, const MAX: usize> Encode for rusmpp_core::types::owned::OctetString<MIN, MAX>
Available on crate feature
alloc only.impl<const N: usize> Encode for rusmpp_core::pdus::borrowed::Pdu<'_, N>
impl<const N: usize> Encode for rusmpp_core::types::borrowed::EmptyOrFullCOctetString<'_, N>
impl<const N: usize> Encode for rusmpp_core::types::owned::EmptyOrFullCOctetString<N>
Available on crate feature
alloc only.