1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! VersaTiles Core Library
//!
//! This crate provides the core types, utilities, and I/O abstractions for working with
//! map tiles in the VersaTiles ecosystem.
//!
//! # Main Components
//!
//! - **[`types`]**: Core types including tile coordinates ([`TileCoord`]), bounding boxes
//! ([`TileBBox`], [`GeoBBox`]), formats ([`TileFormat`]), compression ([`TileCompression`]),
//! and binary data handling ([`Blob`]).
//!
//! - **[`io`]**: I/O abstractions for reading and writing tile data from various sources
//! (files, HTTP, memory) with support for value serialization in different byte orders.
//!
//! - **[`json`]**: JSON parsing, stringification, and NDJSON (newline-delimited JSON) support
//! with custom types (`JsonValue`, `JsonArray`, `JsonObject`).
//!
//! - **[`compression`]**: Compression and decompression of tile data (Gzip, Brotli, Zstd).
//!
//! - **[`utils`]**: Utility modules for CSV parsing, spatial indexing (Hilbert curves),
//! and pretty-printing.
//!
//! - **[`concurrency`]**: Concurrency limit tuning for optimal I/O and CPU performance
//! ([`ConcurrencyLimits`]).
//!
//! # Examples
//!
//! ```rust
//! use versatiles_core::{TileCoord, TileBBox, Blob, TileFormat};
//!
//! // Create a tile coordinate
//! let coord = TileCoord::new(5, 10, 15).unwrap();
//! println!("Tile: {:?}", coord);
//!
//! // Create a bounding box
//! let bbox = TileBBox::new_full(5).unwrap();
//! println!("BBox covers {} tiles", bbox.count_tiles());
//!
//! // Work with binary data
//! let data = Blob::from("Hello, tiles!");
//! assert_eq!(data.len(), 13);
//! ```
pub use *;
pub use *;