rusmpp_core/values/broadcast_area_identifier/
owned.rs

1use rusmpp_macros::Rusmpp;
2
3use crate::types::owned::AnyOctetString;
4
5use super::BroadcastAreaFormat;
6
7/// The broadcast_area_identifier defines the Broadcast Area in terms of a geographical descriptor.
8#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Default, Rusmpp)]
9#[rusmpp(decode = owned)]
10#[cfg_attr(feature = "arbitrary", derive(::arbitrary::Arbitrary))]
11#[cfg_attr(feature = "serde", derive(::serde::Serialize))]
12#[cfg_attr(feature = "serde-deserialize-unchecked", derive(::serde::Deserialize))]
13pub struct BroadcastAreaIdentifier {
14    pub format: BroadcastAreaFormat,
15    #[rusmpp(length = "unchecked")]
16    pub area: AnyOctetString,
17}
18
19impl BroadcastAreaIdentifier {
20    pub fn new(format: BroadcastAreaFormat, area: AnyOctetString) -> Self {
21        Self { format, area }
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn encode_decode() {
31        #[cfg(feature = "alloc")]
32        crate::tests::owned::encode_decode_with_length_test_instances::<BroadcastAreaIdentifier>();
33    }
34}