Skip to main content

hxy_core/
error.rs

1use std::io;
2
3use thiserror::Error;
4
5use crate::geometry::ByteOffset;
6use crate::geometry::ByteRange;
7
8pub type Result<T> = std::result::Result<T, Error>;
9
10#[derive(Debug, Error)]
11pub enum Error {
12    #[error("range {range} exceeds source length {len}")]
13    OutOfBounds { range: ByteRange, len: ByteOffset },
14
15    #[error("invalid range: start {start} > end {end}")]
16    InvalidRange { start: ByteOffset, end: ByteOffset },
17
18    #[error("column count must be non-zero")]
19    ZeroColumns,
20
21    #[error("I/O error while reading {range}")]
22    Io {
23        range: ByteRange,
24        #[source]
25        source: io::Error,
26    },
27}