sct_reader/loaders/vnas_crc/
facility.rs

1use serde::{Deserialize, Serialize};
2
3use super::{eram::EramConfig, stars::StarsConfiguration, tower::TowerCabConfig};
4
5
6#[derive(Debug, Clone, Default, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct CrcFacility {
9    pub id: String,
10    pub r#type: String,
11    pub name: String,
12    pub child_facilities: Vec<CrcFacility>,
13    pub eram_configuration: Option<EramConfig>,
14    pub stars_configuration: Option<StarsConfiguration>,
15    pub tower_cab_configuration: Option<TowerCabConfig>,
16    pub asdex_configuration: Option<TowerCabConfig>,
17    pub neighboring_facility_ids: Vec<String>,
18    pub non_nas_facility_ids: Vec<String>,
19    pub positions: Option<Vec<CrcPosition>>
20}
21
22#[derive(Debug, Clone, Default, Serialize, Deserialize)]
23#[serde(rename_all = "camelCase")]
24pub struct CrcPosition {
25    pub id: String,
26    pub name: String,
27    pub starred: Option<bool>,
28    pub radio_name: Option<String>,
29    pub callsign: Option<String>,
30    pub frequency: Option<u32>,
31    pub eram_configuration: Option<CrcPositionEramConfig>,
32    pub stars_configuration: Option<CrcPositionStarsConfig>,
33    pub tranceiver_ids: Option<Vec<String>>,
34    pub runway_ids: Option<Vec<String>>
35}
36
37#[derive(Debug, Clone, Default, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub struct CrcPositionEramConfig {
40    pub sector_id: String
41}
42
43#[derive(Debug, Clone, Default, Serialize, Deserialize)]
44#[serde(rename_all = "camelCase")]
45pub struct CrcPositionStarsConfig {
46    pub sector_id: String,
47    pub subset: u32,
48    pub area_id: String,
49    pub color_set: String
50}
51
52#[derive(Debug, Clone, Default, Serialize, Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct BeaconCodeBank {
55    id: String,
56    category: Option<String>,
57    priority: Option<String>,
58    subset: Option<u32>,
59    start: u32,
60    end: u32
61}