use alloc::vec::Vec; use crate::enums::AlertDescription; use crate::error::InvalidMessage; use crate::msgs::codec::{Codec, Reader}; use crate::msgs::enums::AlertLevel; #[derive(Debug)] pub struct AlertMessagePayload { pub level: AlertLevel, pub description: AlertDescription, } impl Codec<'_> for AlertMessagePayload { fn encode(&self, bytes: &mut Vec) { self.level.encode(bytes); self.description.encode(bytes); } fn read(r: &mut Reader<'_>) -> Result { let level = AlertLevel::read(r)?; let description = AlertDescription::read(r)?; r.expect_empty("AlertMessagePayload") .map(|_| Self { level, description }) } }