bgpkit_parser/parser/bgp/attributes/
attr_04_med.rs1use 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}