mod ephemeris;
mod events;
mod orbits;
mod residuals;
pub use ephemeris::{write_ephemeris_csv, write_ephemeris_json, write_ephemeris_parquet};
pub use events::{write_events_csv, write_events_json, write_events_parquet};
pub use orbits::{
OrbitBatch, read_orbits_csv, read_orbits_json, read_orbits_parquet, write_orbits_csv,
write_orbits_json, write_orbits_parquet,
};
pub use residuals::{write_residuals_csv, write_residuals_json, write_residuals_parquet};
use std::ffi::CString;
use std::path::Path;
use crate::error::{Error, Result};
pub(super) fn path_to_cstring(path: &Path) -> Result<CString> {
let bytes = path
.to_str()
.ok_or_else(|| Error::invalid_input("path is not valid UTF-8"))?
.as_bytes();
CString::new(bytes).map_err(|_| Error::invalid_input("path contains a NUL byte"))
}