rustls/msgs/
alert.rs

1use alloc::vec::Vec;
2
3use crate::enums::AlertDescription;
4use crate::error::InvalidMessage;
5use crate::msgs::codec::{Codec, Reader};
6use crate::msgs::enums::AlertLevel;
7
8#[derive(Debug)]
9pub struct AlertMessagePayload {
10    pub level: AlertLevel,
11    pub description: AlertDescription,
12}
13
14impl Codec<'_> for AlertMessagePayload {
15    fn encode(&self, bytes: &mut Vec<u8>) {
16        self.level.encode(bytes);
17        self.description.encode(bytes);
18    }
19
20    fn read(r: &mut Reader<'_>) -> Result<Self, InvalidMessage> {
21        let level = AlertLevel::read(r)?;
22        let description = AlertDescription::read(r)?;
23        r.expect_empty("AlertMessagePayload")
24            .map(|_| Self { level, description })
25    }
26}