1pub type MvtResult<T> = Result<T, MvtError>;
2
3#[derive(Debug, thiserror::Error)]
4#[non_exhaustive]
5pub enum MvtError {
6 #[error("protobuf decode error: {0}")]
7 Decode(#[from] buffa::DecodeError),
8
9 #[error("protobuf encode error: {0}")]
10 Encode(#[from] buffa::EncodeError),
11
12 #[error("{0}")]
13 Io(#[from] std::io::Error),
14
15 #[error("duplicate layer name: {0}")]
16 DuplicateLayer(String),
17
18 #[error("missing required layer name")]
19 MissingLayerName,
20
21 #[error("invalid extent 0")]
22 InvalidExtent,
23
24 #[error("unsupported layer version {version} for layer {layer}")]
25 UnsupportedVersion { layer: String, version: u32 },
26
27 #[error("invalid feature tags length: {0}")]
28 InvalidTagsLength(usize),
29
30 #[error("invalid key index {0}")]
31 InvalidKeyIndex(u32),
32
33 #[error("invalid value index {0}")]
34 InvalidValueIndex(u32),
35
36 #[error("invalid geometry command stream")]
37 InvalidGeometry,
38
39 #[error("unsupported geometry type: {0}")]
40 UnsupportedGeometry(&'static str),
41
42 #[error("command count exceeds supported range: {0}")]
43 CommandCount(u32),
44
45 #[error("tile index exceeds supported range: {0}")]
46 IndexOverflow(usize),
47}