open-standards/map/map-rs/crates/map-orbital/src/error.rs
Transaction Science ba1212361f Add aac, map, sandbox standards; catalog the standards family
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]>
2026-06-07 17:04:36 -04:00

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>;