1use pyo3::prelude::*;
4
5pub mod airac;
6pub mod airports;
7pub mod airspaces;
8pub mod airways;
9pub mod field15;
10pub mod intervals;
11pub mod navpoints;
12
13#[pymodule]
14#[pyo3(name = "core")]
15fn thrust(py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
16 let interval_mod = intervals::init(py)?;
17 m.add_submodule(&interval_mod)?;
18
19 let sys = py.import("sys")?;
23 let modules = sys.getattr("modules")?;
24 modules.set_item("thrust.core.intervals", &interval_mod)?;
25
26 let field15_mod = field15::init(py)?;
27 m.add_submodule(&field15_mod)?;
28 modules.set_item("thrust.core.field15", &field15_mod)?;
29
30 let airports_mod = airports::init(py)?;
31 m.add_submodule(&airports_mod)?;
32 modules.set_item("thrust.core.airports", &airports_mod)?;
33
34 let airac_mod = airac::init(py)?;
35 m.add_submodule(&airac_mod)?;
36 modules.set_item("thrust.core.airac", &airac_mod)?;
37
38 let airways_mod = airways::init(py)?;
39 m.add_submodule(&airways_mod)?;
40 modules.set_item("thrust.core.airways", &airways_mod)?;
41
42 let airspaces_mod = airspaces::init(py)?;
43 m.add_submodule(&airspaces_mod)?;
44 modules.set_item("thrust.core.airspaces", &airspaces_mod)?;
45
46 let navpoints_mod = navpoints::init(py)?;
47 m.add_submodule(&navpoints_mod)?;
48 modules.set_item("thrust.core.navpoints", &navpoints_mod)?;
49
50 Ok(())
51}