car_mirror_reqwest/
error.rs

1use reqwest::Response;
2use std::{collections::TryReserveError, convert::Infallible};
3
4/// Possible errors raised in this library
5#[derive(thiserror::Error, Debug)]
6pub enum Error {
7    /// Raised when the HTTP response code didn't end up as a 200 or 202
8    #[error("Unexpected response code: {}, expected 200 or 202", response.status())]
9    UnexpectedStatusCode {
10        /// The response
11        response: Response,
12    },
13
14    /// Raised when `RequestBuilder::try_clone` fails, usually because
15    /// `RequestBuilder::body(Body::wrap_stream(...))` was called.
16    ///
17    /// Generally, car-mirror-reqwest will take over body creation, so there's
18    /// no point in setting the body before `run_car_mirror_pull` / `run_car_mirror_push`.
19    #[error("Body must not be set on request builder")]
20    RequestBuilderBodyAlreadySet,
21
22    /// reqwest errors
23    #[error(transparent)]
24    ReqwestError(#[from] reqwest::Error),
25
26    /// reqwest-middleware errors
27    #[error(transparent)]
28    ReqwestMiddlewareError(#[from] reqwest_middleware::Error),
29
30    /// car-mirror errors
31    #[error(transparent)]
32    CarMirrorError(#[from] car_mirror::Error),
33
34    /// dag-cbor decoding errors
35    #[error(transparent)]
36    DagCborDecodeError(#[from] serde_ipld_dagcbor::DecodeError<Infallible>),
37
38    /// dag-cbor encoding errors
39    #[error(transparent)]
40    DagCborEncodeError(#[from] serde_ipld_dagcbor::EncodeError<TryReserveError>),
41}