Skip to main content

pykep_core/
lib.rs

1#![doc = include_str!("../README.md")]
2#![forbid(unsafe_code)]
3#![deny(missing_docs)]
4#![deny(rustdoc::broken_intra_doc_links)]
5#![warn(clippy::missing_errors_doc)]
6#![warn(clippy::missing_panics_doc)]
7
8/// Orbital-mechanics algorithms and coordinate conversions.
9pub mod astro;
10/// Ordered serial/parallel execution shared by batch APIs.
11pub mod batch;
12/// Physical and astrodynamical constants.
13pub mod constants;
14/// Evaluated Kepler, CR3BP, and bicircular dynamics models.
15pub mod dynamics;
16/// Ephemeris providers and the object-safe planet interface.
17pub mod ephemeris;
18/// Stable error categories returned by numerical APIs.
19pub mod error;
20/// Adaptive integration interfaces used by evaluated dynamics models.
21pub mod integration;
22/// Low-thrust trajectory leg models and constraint Jacobians.
23pub mod leg;
24/// Small, dependency-free numerical helpers.
25pub mod math;
26/// Time representations and conversions.
27pub mod time;
28/// Fixed-shape numerical types used throughout the crate.
29pub mod types;
30
31pub use error::{PykepError, Result};
32pub use types::{CartesianState, Elements6, Matrix3, Matrix6, Vector3};
33
34/// Current implementation status exposed by both the Rust and Python smoke
35/// tests.
36pub const PORT_STATUS: &str = "phase 18: release candidate";
37
38#[cfg(test)]
39mod tests {
40    use super::PORT_STATUS;
41
42    #[test]
43    fn status_reports_release_candidate() {
44        assert!(PORT_STATUS.contains("phase 18"));
45        assert!(PORT_STATUS.contains("release candidate"));
46    }
47}