swiss_eph_data/
lib.rs

1//! Embedded ephemeris data for Swiss Ephemeris.
2//!
3//! This crate provides pre-packaged ephemeris files for use with `swiss-eph`.
4//! The data covers planetary and lunar positions from 1800-2400 CE.
5//!
6//! # Usage
7//!
8//! ```rust
9//! use swiss_eph_data::{SEPL_18, SEMO_18};
10//!
11//! // Access raw ephemeris bytes
12//! let planet_data: &[u8] = SEPL_18;
13//! let moon_data: &[u8] = SEMO_18;
14//! ```
15
16/// Planetary ephemeris data (1800-2400 CE).
17/// 
18/// File: `sepl_18.se1`
19/// Contains positions for Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, Pluto.
20pub static SEPL_18: &[u8] = include_bytes!("../ephe/sepl_18.se1");
21
22/// Lunar ephemeris data (1800-2400 CE).
23/// 
24/// File: `semo_18.se1`
25/// Contains high-precision Moon positions.
26pub static SEMO_18: &[u8] = include_bytes!("../ephe/semo_18.se1");
27
28/// List of all available ephemeris files.
29pub static FILES: &[(&str, &[u8])] = &[
30    ("sepl_18.se1", SEPL_18),
31    ("semo_18.se1", SEMO_18),
32];
33
34/// Returns a list of all available ephemeris files.
35pub fn list_files() -> &'static [(&'static str, &'static [u8])] {
36    FILES
37}
38
39/// Get ephemeris data by filename.
40pub fn get_file(name: &str) -> Option<&'static [u8]> {
41    match name {
42        "sepl_18.se1" => Some(SEPL_18),
43        "semo_18.se1" => Some(SEMO_18),
44        _ => None,
45    }
46}