Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:
- aac/ — communication cargo class: portable boards + a ten-level
offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/ — geospatial cargo class: range-requestable signed tilesets +
an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.
Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
41 lines
1.3 KiB
Rust
41 lines
1.3 KiB
Rust
//! Error types for orbital mechanics operations.
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
/// Errors that can occur during orbital mechanics operations.
|
|
#[derive(Debug, Clone, thiserror::Error, Serialize, Deserialize)]
|
|
pub enum OrbitalError {
|
|
/// TLE parsing failed.
|
|
#[error("TLE parse error: {0}")]
|
|
TleParseError(String),
|
|
|
|
/// TLE checksum verification failed.
|
|
#[error("TLE checksum error on line {line}: expected {expected}, got {got}")]
|
|
TleChecksumError {
|
|
/// Which line (1 or 2).
|
|
line: u8,
|
|
/// Expected checksum digit.
|
|
expected: u8,
|
|
/// Computed checksum digit.
|
|
got: u8,
|
|
},
|
|
|
|
/// Propagation failed (satellite may have decayed or eccentricity diverged).
|
|
#[error("propagation error: {0}")]
|
|
PropagationError(String),
|
|
|
|
/// Satellite orbit has decayed (perigee below Earth surface).
|
|
#[error("satellite has decayed")]
|
|
SatelliteDecayed,
|
|
|
|
/// Eccentricity outside valid range [0, 1).
|
|
#[error("invalid eccentricity: {0}")]
|
|
InvalidEccentricity(f64),
|
|
|
|
/// Kepler's equation or other iterative solver did not converge.
|
|
#[error("iterative solver did not converge")]
|
|
ConvergenceError,
|
|
}
|
|
|
|
/// Convenience alias for orbital results.
|
|
pub type OrbitalResult<T> = Result<T, OrbitalError>;
|