Skip to main content

a5/
lib.rs

1// A5
2// SPDX-License-Identifier: Apache-2.0
3// Copyright (c) A5 contributors
4
5// Internal modules - public only for testing
6#[cfg_attr(not(test), allow(unused))]
7pub mod coordinate_systems;
8#[cfg_attr(not(test), allow(unused))]
9pub mod core;
10#[cfg_attr(not(test), allow(unused))]
11pub mod geometry;
12#[cfg_attr(not(test), allow(unused))]
13pub mod lattice;
14#[cfg_attr(not(test), allow(unused))]
15pub mod projections;
16#[cfg_attr(not(test), allow(unused))]
17pub mod traversal;
18#[cfg_attr(not(test), allow(unused))]
19pub mod utils;
20
21// PUBLIC API
22// Indexing
23pub use core::cell::{cell_to_boundary, cell_to_lonlat, cell_to_spherical, lonlat_to_cell};
24pub use core::hex::{hex_to_u64, u64_to_hex};
25
26// Hierarchy
27pub use core::cell_info::{cell_area, get_num_cells, get_num_children};
28pub use core::serialization::{
29    cell_to_children, cell_to_parent, get_res0_cells, get_resolution, WORLD_CELL,
30};
31
32// Compaction
33pub use core::compact::{compact, uncompact};
34
35// Traversal
36pub use traversal::cap::spherical_cap;
37pub use traversal::grid_disk::{grid_disk, grid_disk_vertex};
38
39// Types
40pub use coordinate_systems::{Degrees, LonLat, Radians};
41pub use core::utils::A5Cell;