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
//! # VersaTiles
//!
//! VersaTiles is a fast Rust library for reading, writing, and converting between different tile containers.
//!
//! ## Features
//! - **Read and Write**: Supports reading and writing various tile container formats.
//! - **Convert**: Convert between different tile formats and compressions.
//!
//! ## Supported Formats
//! - `*.versatiles`
//! - `*.mbtiles` (requires `full` feature)
//! - `*.pmtiles` (requires `full` feature)
//! - `*.tar` (requires `full` feature)
//! - tiles stored in a local directory
//!
//! ## Usage Example
//!
//! ```rust
//! use versatiles::container::{get_reader, TilesReader, write_to_filename};
//! use versatiles::types::TileFormat;
//! use std::path::Path;
//! use anyhow::Result;
//!
//! #[tokio::main]
//! async fn main() -> Result<()> {
//!     // Define the input filename (local file or URL)
//!     let input_filename = "../testdata/berlin.pmtiles";
//!     let mut reader = get_reader(input_filename).await?;
//!
//!     // Define the output filename
//!     let output_filename = "../testdata/temp1.versatiles";
//!
//!     // Write the tiles to the output file
//!     write_to_filename(&mut *reader, output_filename).await?;
//!
//!     println!("Tiles have been successfully converted and saved to {output_filename}");
//!     Ok(())
//! }
//! ```

pub mod container;
pub mod utils;
pub use versatiles_core::*;

#[cfg(feature = "full")]
pub use versatiles_geometry as geometry;