sct_reader/loaders/vnas_crc/
facility.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
use serde::{Deserialize, Serialize};

use super::{eram::EramConfig, stars::StarsConfiguration, tower::TowerCabConfig};


#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CrcFacility {
    pub id: String,
    pub r#type: String,
    pub name: String,
    pub child_facilities: Vec<CrcFacility>,
    pub eram_configuration: Option<EramConfig>,
    pub stars_configuration: Option<StarsConfiguration>,
    pub tower_cab_configuration: Option<TowerCabConfig>,
    pub asdex_configuration: Option<TowerCabConfig>,
    pub neighboring_facility_ids: Vec<String>,
    pub non_nas_facility_ids: Vec<String>,
    pub positions: Option<Vec<CrcPosition>>
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CrcPosition {
    pub id: String,
    pub name: String,
    pub starred: Option<bool>,
    pub radio_name: Option<String>,
    pub callsign: Option<String>,
    pub frequency: Option<u32>,
    pub eram_configuration: Option<CrcPositionEramConfig>,
    pub stars_configuration: Option<CrcPositionStarsConfig>,
    pub tranceiver_ids: Option<Vec<String>>,
    pub runway_ids: Option<Vec<String>>
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CrcPositionEramConfig {
    pub sector_id: String
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CrcPositionStarsConfig {
    pub sector_id: String,
    pub subset: u32,
    pub area_id: String,
    pub color_set: String
}

#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BeaconCodeBank {
    id: String,
    category: Option<String>,
    priority: Option<String>,
    subset: Option<u32>,
    start: u32,
    end: u32
}