1pub mod antenna;
3pub mod frequency;
4pub mod pcv;
5pub mod record;
6
7pub use pcv::Pcv;
8pub use antenna::{
11 Antenna, AntennaMatcher, AntennaSpecific, Calibration, CalibrationMethod, RxAntenna, SvAntenna,
12};
13
14pub use record::{FrequencyDependentData, Record};
15
16use crate::prelude::FormattingError;
17
18use std::io::{BufWriter, Write};
19
20#[cfg(feature = "serde")]
21use serde::{Deserialize, Serialize};
22
23#[derive(Clone, Debug, Default, PartialEq)]
24#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
25pub struct HeaderFields {
26 pub pcv_type: pcv::Pcv,
28 pub reference_ant_sn: Option<String>,
31}
32
33impl HeaderFields {
34 pub(crate) fn format<W: Write>(&self, _w: &mut BufWriter<W>) -> Result<(), FormattingError> {
36 Ok(())
37 }
38
39 pub fn with_pcv_type(&self, pcv: Pcv) -> Self {
41 let mut s = self.clone();
42 s.pcv_type = pcv;
43 s
44 }
45
46 pub fn with_reference_antenna_sn(&self, sn: &str) -> Self {
48 let mut s = self.clone();
49 s.reference_ant_sn = Some(sn.to_string());
50 s
51 }
52}