use pyo3::prelude::*;
mod errors;
pub mod interop;
mod jd;
mod mjd;
mod period;
mod scales;
use jd::PyJulianDate;
use mjd::PyModifiedJulianDate;
use period::{intersect_periods_py, PyTimePeriod};
use scales::{convert_timescale, tai_minus_utc_py, PyTimeScale};
#[pymodule]
fn _tempoch(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_class::<PyJulianDate>()?;
m.add_class::<PyModifiedJulianDate>()?;
m.add_class::<PyTimePeriod>()?;
m.add_class::<PyTimeScale>()?;
m.add(
"NonFiniteTimeError",
_py.get_type::<errors::NonFiniteTimeError>(),
)?;
m.add(
"InvalidIntervalError",
_py.get_type::<errors::InvalidIntervalError>(),
)?;
m.add("ConversionError", _py.get_type::<errors::ConversionError>())?;
m.add_function(wrap_pyfunction!(convert_timescale, m)?)?;
m.add_function(wrap_pyfunction!(tai_minus_utc_py, m)?)?;
m.add_function(wrap_pyfunction!(intersect_periods_py, m)?)?;
m.add("__version__", env!("CARGO_PKG_VERSION"))?;
Ok(())
}