use rusmpp_macros::TlvValue;
use crate::{
tlvs::{
TlvTag,
owned::{Tlv, TlvValue},
},
types::owned::{AnyOctetString, COctetString, OctetString},
values::{owned::*, *},
};
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, TlvValue)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize))]
#[cfg_attr(feature = "serde-deserialize-unchecked", derive(::serde::Deserialize))]
pub enum MessageDeliveryRequestTlvValue {
CallbackNum(OctetString<4, 19>),
CallbackNumAtag(OctetString<0, 65>),
CallbackNumPresInd(CallbackNumPresInd),
DestAddrNpCountry(OctetString<1, 5>),
DestAddrNpInformation(OctetString<0, 10>),
DestAddrNpResolution(DestAddrNpResolution),
DestAddrSubunit(AddrSubunit),
DestNetworkId(COctetString<7, 66>),
DestNodeId(OctetString<6, 6>),
DestSubaddress(Subaddress),
DestPort(u16),
DpfResult(DpfResult),
ItsReplyType(ItsReplyType),
ItsSessionInfo(ItsSessionInfo),
LanguageIndicator(LanguageIndicator),
MessagePayload(MessagePayload),
MessageState(MessageState),
NetworkErrorCode(NetworkErrorCode),
PayloadType(PayloadType),
PrivacyIndicator(PrivacyIndicator),
ReceiptedMessageId(COctetString<1, 65>),
SarMsgRefNum(u16),
SarSegmentSeqnum(u8),
SarTotalSegments(u8),
SourceAddrSubunit(AddrSubunit),
SourceNetworkId(COctetString<7, 66>),
SourceNodeId(OctetString<6, 6>),
SourcePort(u16),
SourceSubaddress(Subaddress),
UserMessageReference(UserMessageReference),
UserResponseCode(u8),
UssdServiceOp(UssdServiceOp),
Other { tag: TlvTag, value: AnyOctetString },
}