use crate::ScopedPdu;
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub enum ScopedPduData {
Plaintext(ScopedPdu),
Encrypted(Vec<u8>),
}
impl ScopedPduData {
pub fn plaintext(&self) -> Option<&ScopedPdu> {
match self {
ScopedPduData::Plaintext(ref scoped_pdu) => Some(scoped_pdu),
_ => None,
}
}
pub fn plaintext_mut(&mut self) -> Option<&mut ScopedPdu> {
match self {
ScopedPduData::Plaintext(ref mut scoped_pdu) => Some(scoped_pdu),
_ => None,
}
}
pub fn encrypted(&self) -> Option<&[u8]> {
match self {
ScopedPduData::Encrypted(ref encrypted_scoped_pdu) => Some(encrypted_scoped_pdu),
_ => None,
}
}
pub(crate) fn unwrap_plaintext(&self) -> &ScopedPdu {
match self {
ScopedPduData::Plaintext(ref scoped_pdu) => scoped_pdu,
_ => panic!("not a plaintext scoped PDU"),
}
}
}
impl Default for ScopedPduData {
fn default() -> Self {
Self::Plaintext(ScopedPdu::default())
}
}