Skip to main content

utiles_core/
errors.rs

1//! utiles-core errors mod
2
3use std::num::TryFromIntError;
4
5use thiserror::Error;
6
7/// Error type for utiles-core
8#[derive(Error, Debug)]
9pub enum UtilesCoreError {
10    /// Error with some string
11    #[error("{0}")]
12    AdHoc(String),
13
14    /// Error for parsing a tile
15    #[error("tile parse error: {0}")]
16    TileParseError(String),
17
18    /// Error for general parsing
19    #[error("parse error: {0}")]
20    ParseError(String),
21
22    /// Error on invalid tile-quadkey
23    #[error("invalid tile: {0}")]
24    InvalidTile(String),
25
26    /// Error on invalid tile-quadkey
27    #[error("invalid quadkey: {0}")]
28    InvalidQuadkey(String),
29
30    /// Error for invalid bbox (bounding-box)
31    #[error("invalid bbox: {0}")]
32    InvalidBbox(String),
33
34    /// Error for invalid `LngLat`
35    #[error("invalid lnglat: {0}")]
36    InvalidLngLat(String),
37
38    /// Error for invalid SRTM string
39    #[error("invalid SRTM string: {0}")]
40    InvalidSrtmString(String),
41
42    /// Error for invalid zoom between 0 and 32
43    #[error("invalid zoom(s): {0}")]
44    InvalidZoom(String),
45
46    /// Error for invalid projection
47    #[error("invalid projection: {0}")]
48    InvalidProjection(String),
49
50    /// Error for invalid json
51    #[error("invalid json: {0}")]
52    InvalidJson(String),
53
54    /// Error for when converting from lnglat to web mercator fails
55    #[error("conversion err: {0}")]
56    LngLat2WebMercator(String),
57
58    /// Error on unimplemented feature
59    #[error("Unimplemented: {0}")]
60    Unimplemented(String),
61
62    /// Error on serde io error
63    #[error("io error: {0}")]
64    SerdeJsonError(#[from] serde_json::Error),
65
66    /// Try from int
67    #[error("try-from-int: {0}")]
68    TryFromIntError(#[from] TryFromIntError),
69}
70
71/// Result type for utiles-core; really a type alias for `Result<T, UtilesCoreError>`
72pub type UtilesCoreResult<T> = Result<T, UtilesCoreError>;