diameter_interface/modeling/avp/
unsigned32.rs1use crate::errors::DiameterResult;
2use crate::impl_avp_data_encode_to_numbers;
3use crate::modeling::avp::avp::AvpValue;
4use crate::modeling::avp::AvpData;
5use std::io::Read;
6
7pub type Unsigned32 = AvpData<u32>;
8
9impl Unsigned32 {
10 impl_avp_data_encode_to_numbers!(Unsigned32, u32);
11
12 pub(super) fn decode_from<R: Read>(reader: &mut R) -> DiameterResult<AvpData<u32>> {
13 let mut buffer = [0u8; 4];
14 reader.read_exact(&mut buffer)?;
15 let num = u32::from_be_bytes(buffer);
16 Ok(Unsigned32::new(num))
17 }
18
19 pub(super) fn len(&self) -> u32 {
20 4
21 }
22}
23
24impl Into<AvpValue> for Unsigned32 {
25 fn into(self) -> AvpValue {
26 AvpValue::Unsigned32(self)
27 }
28}