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<u8>) {
self.level.encode(bytes);
self.description.encode(bytes);
}
fn read(r: &mut Reader<'_>) -> Result<Self, InvalidMessage> {
let level = AlertLevel::read(r)?;
let description = AlertDescription::read(r)?;
r.expect_empty("AlertMessagePayload")
.map(|_| Self { level, description })
}
}