Skip to main content

bgpkit_parser/parser/bgp/attributes/
attr_04_med.rs

1use crate::models::*;
2use crate::parser::ReadUtils;
3use crate::ParserError;
4use bytes::Bytes;
5
6pub fn parse_med(mut input: Bytes) -> Result<AttributeValue, ParserError> {
7    Ok(AttributeValue::MultiExitDiscriminator(input.read_u32()?))
8}
9
10pub fn encode_med(med: u32) -> Bytes {
11    Bytes::from(med.to_be_bytes().to_vec())
12}
13
14#[cfg(test)]
15mod tests {
16    use super::*;
17
18    #[test]
19    fn test_parse_med() {
20        assert_eq!(
21            parse_med(Bytes::from(vec![0, 0, 0, 123])).unwrap(),
22            AttributeValue::MultiExitDiscriminator(123)
23        );
24    }
25
26    #[test]
27    fn test_encode_med() {
28        assert_eq!(encode_med(123), Bytes::from(vec![0, 0, 0, 123]));
29    }
30}