use h3o::error::{InvalidGeometry, PlotterError};
use crate::{ItemId, metadata::Version};
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("The build was canceled")]
BuildCanceled,
#[error(
"Version mismatch while building, was expecting v{} but instead got v{}. Upgrade the version before building.",
Version::default(), .0
)]
VersionMismatchOnBuild(Version),
#[error(
"Tried to open a cellulite database, but it's inner database don't exists yet. Call `create_from_env` first."
)]
DatabaseDoesntExists,
#[error(transparent)]
Heed(#[from] heed::Error),
#[error(transparent)]
InvalidGeometry(#[from] InvalidGeometry),
#[error(transparent)]
InvalidGeoJson(#[from] Box<geojson::Error>),
#[error("unexpected document id `{0}` missing at `{1}`")]
InternalDocIdMissing(ItemId, String),
#[error("Error with document `{0}`, could not convert it's line(s) to cells because: {1}\n{2}")]
CannotConvertLineToCell(ItemId, PlotterError, String),
}
#[macro_export]
macro_rules! pos {
() => {
format!("{}:{}:{}", file!(), line!(), column!())
};
}