sct_reader/loaders/vnas_crc/
facility.rs1use 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}