#![recursion_limit = "256"]
#[cfg(feature = "dhat-heap")]
#[global_allocator]
static ALLOC: dhat::Alloc = dhat::Alloc;
use thiserror::Error;
pub mod vector_tile {
include!(concat!(env!("OUT_DIR"), "/vector_tile.rs"));
}
pub mod batch_processor;
pub mod clip;
pub mod compression;
pub mod covering;
pub mod decode;
pub mod dedup;
pub mod fs_probe;
pub mod input;
pub mod input_set;
pub mod ioverlay_clip;
pub mod mvt;
pub mod overview;
pub mod pmtiles_writer;
pub mod pyramid;
pub mod quality;
pub mod sutherland_hodgman;
pub mod tile;
pub mod wkb;
pub mod world_coord;
pub use compression::Compression;
pub use pmtiles_writer::{StreamingPmtilesWriter, StreamingWriteStats};
pub use quality::{extract_crs, validate_wgs84, CrsInfo};
#[derive(Error, Debug)]
pub enum Error {
#[error("Failed to read GeoParquet file: {0}")]
GeoParquetRead(String),
#[error("Failed to write PMTiles: {0}")]
PMTilesWrite(String),
#[error("Failed to read PMTiles: {0}")]
PMTilesRead(String),
#[error("Invalid geometry at feature {feature_id}: {reason}")]
InvalidGeometry { feature_id: usize, reason: String },
#[error("MVT encoding failed: {0}")]
MvtEncoding(String),
#[error("Invalid configuration: {0}")]
InvalidConfig(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;