nexrad_decode/messages/rda_status_data/
volume_coverage_pattern.rs

1use crate::messages::primitive_aliases::SInteger2;
2use std::fmt::Debug;
3
4/// The RDA system's volume coverage pattern number.
5#[derive(Clone, PartialEq, Eq, Hash)]
6pub struct VolumeCoveragePatternNumber(SInteger2);
7
8impl VolumeCoveragePatternNumber {
9    pub(crate) fn new(value: SInteger2) -> Self {
10        Self(value)
11    }
12
13    /// The volume coverage pattern number.
14    pub fn number(&self) -> i16 {
15        self.0.abs()
16    }
17
18    /// Whether the volume coverage pattern number was specified locally.
19    pub fn local(&self) -> bool {
20        self.0 < 0
21    }
22
23    /// Whether the volume coverage pattern number was specified remotely.
24    pub fn remote(&self) -> bool {
25        self.0 > 0
26    }
27}
28
29impl Debug for VolumeCoveragePatternNumber {
30    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
31        f.debug_struct("VolumeCoveragePatternNumber")
32            .field("number", &self.number())
33            .field("local", &self.local())
34            .field("remote", &self.remote())
35            .finish()
36    }
37}