async_http_range_reader/
error.rs1use std::sync::Arc;
2
3#[derive(Clone, Debug, thiserror::Error)]
5pub enum AsyncHttpRangeReaderError {
6 #[error("range requests are not supported")]
8 HttpRangeRequestUnsupported,
9
10 #[error(transparent)]
12 HttpError(#[from] Arc<reqwest_middleware::Error>),
13
14 #[error("an error occurred during transport: {0}")]
16 TransportError(#[source] Arc<reqwest_middleware::Error>),
17
18 #[error("io error occurred: {0}")]
20 IoError(#[source] Arc<std::io::Error>),
21
22 #[error("content-range header is missing from response")]
24 ContentRangeMissing,
25
26 #[error("content-length header is missing from response")]
28 ContentLengthMissing,
29
30 #[error("memory mapping the file failed")]
32 MemoryMapError(#[source] Arc<std::io::Error>),
33
34 #[error("Invalid Content-Range header: {0}")]
36 ContentRangeParser(String),
37}
38
39impl From<std::io::Error> for AsyncHttpRangeReaderError {
40 fn from(err: std::io::Error) -> Self {
41 AsyncHttpRangeReaderError::IoError(Arc::new(err))
42 }
43}
44
45impl From<reqwest_middleware::Error> for AsyncHttpRangeReaderError {
46 fn from(err: reqwest_middleware::Error) -> Self {
47 AsyncHttpRangeReaderError::TransportError(Arc::new(err))
48 }
49}
50
51impl From<reqwest::Error> for AsyncHttpRangeReaderError {
52 fn from(err: reqwest::Error) -> Self {
53 AsyncHttpRangeReaderError::TransportError(Arc::new(err.into()))
54 }
55}