Skip to main content

papers_datalab/
error.rs

1/// Errors returned by [`DatalabClient`](crate::DatalabClient) methods.
2#[derive(thiserror::Error, Debug)]
3pub enum DatalabError {
4    #[error("HTTP error: {0}")]
5    Http(#[from] reqwest::Error),
6
7    #[error("API error ({status}): {message}")]
8    Api { status: u16, message: String },
9
10    #[error("Processing failed: {0}")]
11    Processing(String),
12
13    #[error("DATALAB_API_KEY environment variable not set")]
14    MissingApiKey,
15
16    #[error("MarkerRequest must specify either `file` or `file_url`")]
17    InvalidRequest,
18}
19
20/// A [`Result`](std::result::Result) alias with [`DatalabError`] as the error type.
21pub type Result<T> = std::result::Result<T, DatalabError>;