oxiproj-core 0.1.0

Foundation types for OxiProj: coordinates, errors, ellipsoids, datums, and units.
Documentation
#![forbid(unsafe_code)]
//! `oxiproj-core` — Foundation types: coordinates, errors, ellipsoids, datums, and units.
//!
//! Part of [OxiProj](https://github.com/cool-japan/oxiproj), the COOLJAPAN Pure-Rust
//! port of PROJ. See the workspace blueprint `oxiproj.md` for the full design.

pub mod consts;

mod coord;
mod datum;
mod dms;
mod ellipsoid;
mod ellps_table;
mod error;
mod prime_meridian;
mod units;

mod math;

mod factors;
mod grid_registry;
mod operation;

// ---- Curated re-exports ----

pub use coord::{Coord, Direction, Enu, Geod, Lp, Lpz, Lpzt, Opk, Uv, Uvw, Uvwt, Xy, Xyz, Xyzt};
pub use datum::{datum_params, find_datum, DatumDef, DatumParams, DatumType};
pub use dms::{decode_sexagesimal_dms, dmstor, parse_leading_f64};
pub use ellipsoid::{
    calc_ellipsoid_params, from_a_b, from_a_es, from_a_f, from_a_rf, named as named_ellipsoid,
    sphere, Ellipsoid,
};
pub use ellps_table::{find_ellps, EllpsDef};
pub use error::{ProjError, ProjResult};
pub use factors::Factors;
pub use grid_registry::GridRegistry;
pub use operation::{IoUnits, Operation};
pub use prime_meridian::{find_prime_meridian, prime_meridian_offset, PrimeMeridianDef};
pub use units::{find_angular_unit, find_linear_unit, UnitDef};

// Math helpers + types.
pub use math::{
    aacos, aasin, aatan2, adjlon, asqrt, pj_authalic_lat, pj_authalic_lat_compute_coeffs,
    pj_authalic_lat_inverse, pj_auxlat_coeffs, pj_auxlat_convert, pj_auxlat_convert_sc,
    pj_auxlat_convert_seta_ceta, pj_clenshaw, pj_enfn, pj_gauss, pj_gauss_ini, pj_inv_gauss,
    pj_inv_mlfn, pj_mlfn, pj_msfn, pj_phi2, pj_polyval, pj_qsfn, pj_rectifying_radius,
    pj_sinhpsi2tanphi, pj_tsfn, pj_zpoly1, pj_zpolyd1, proj_inv_mdist, proj_mdist, proj_mdist_ini,
    Apa, AuxLat, Complex, EnFn, Gauss, MDist,
};

// Common constants re-exported at crate root for convenience.
pub use consts::{DEG_TO_RAD, M_FORTPI, M_HALFPI, M_PI, M_TWOPI, RAD_TO_DEG, SEC_TO_RAD};