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
//! `*.versatiles` container
//!
//! see [specification](https://github.com/versatiles-org/versatiles-spec)
//!
//! This module provides functionality to read from and write to `*.versatiles` container files.
//!
//! # Usage Example
//!
//! ```rust
//! use versatiles_container::*;
//! use versatiles_core::*;
//! use std::{path::Path, sync::Arc};
//! use anyhow::Result;
//!
//! #[tokio::main]
//! async fn main() -> Result<()> {
//! let path_mbtiles = std::env::current_dir()?.join("../testdata/berlin.mbtiles");
//! let path_versatiles = std::env::temp_dir().join("temp4.versatiles");
//!
//! let runtime = TilesRuntime::default();
//!
//! // Open the source and convert to .versatiles (conversion computes the tile pyramid)
//! let reader = runtime.reader_from_str(path_mbtiles.to_str().unwrap()).await?;
//! convert_tiles_container(reader, TilesConverterParameters::default(), &path_versatiles, runtime.clone()).await?;
//!
//! println!("Tiles have been successfully written to {path_versatiles:?}");
//!
//! // Read the tiles back from the .versatiles file
//! let reader = VersaTilesReader::open(&path_versatiles, runtime).await?;
//!
//! // Get tile data
//! if let Some(tile) = reader.tile(&TileCoord::new(12, 2200, 1345)?).await? {
//! println!("Tile data: {tile:?}");
//! } else {
//! println!("No tile data found");
//! }
//!
//! Ok(())
//! }
//! ```
pub use VersaTilesReader;
pub use VersaTilesSink;
pub use VersaTilesWriter;