From 7dddbde3a1abcb96b75aa4636a07498193f7c551 Mon Sep 17 00:00:00 2001 From: Ferris Tseng Date: Mon, 22 Feb 2021 20:41:44 -0500 Subject: migrate common code to ipfs-api-prelude --- ipfs-api-prelude/src/error.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 ipfs-api-prelude/src/error.rs (limited to 'ipfs-api-prelude/src/error.rs') diff --git a/ipfs-api-prelude/src/error.rs b/ipfs-api-prelude/src/error.rs new file mode 100644 index 0000000..1b9bcaa --- /dev/null +++ b/ipfs-api-prelude/src/error.rs @@ -0,0 +1,28 @@ +// Copyright 2021 rust-ipfs-api Developers +// +// Licensed under the Apache License, Version 2.0, or the MIT license , at your option. This file may not be +// copied, modified, or distributed except according to those terms. +// + +use std::io; +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum Error { + #[error("io error `{0}`")] + Io(#[from] io::Error), + + #[error("utf8 decoding error `{0}`")] + Parse(#[from] serde_json::Error), + + #[error("api returned an error while streaming: `{0}`")] + StreamError(String), + + #[error("api got unrecognized trailer header: `{0}`")] + UnrecognizedTrailerHeader(String), + + #[error("api returned an unknown error: `{0}`")] + UnrecognizedApiError(String), +} -- cgit v1.2.3 From 4ede307efb87bad2627190665279123e588a3494 Mon Sep 17 00:00:00 2001 From: Ferris Tseng Date: Mon, 22 Feb 2021 22:56:04 -0500 Subject: centralize errors in prelude as much as possible --- ipfs-api-prelude/src/error.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'ipfs-api-prelude/src/error.rs') diff --git a/ipfs-api-prelude/src/error.rs b/ipfs-api-prelude/src/error.rs index 1b9bcaa..2c16c5b 100644 --- a/ipfs-api-prelude/src/error.rs +++ b/ipfs-api-prelude/src/error.rs @@ -6,7 +6,7 @@ // copied, modified, or distributed except according to those terms. // -use std::io; +use std::{io, string::FromUtf8Error}; use thiserror::Error; #[derive(Debug, Error)] @@ -15,14 +15,23 @@ pub enum Error { Io(#[from] io::Error), #[error("utf8 decoding error `{0}`")] + ParseUtf8(#[from] FromUtf8Error), + + #[error("json decoding error `{0}`")] Parse(#[from] serde_json::Error), - #[error("api returned an error while streaming: `{0}`")] + #[error("uri error `{0}`")] + Url(#[from] http::uri::InvalidUri), + + #[error("url encoding error `{0}`")] + EncodeUrl(#[from] serde_urlencoded::ser::Error), + + #[error("api returned an error while streaming `{0}`")] StreamError(String), - #[error("api got unrecognized trailer header: `{0}`")] + #[error("api got unrecognized trailer header `{0}`")] UnrecognizedTrailerHeader(String), - #[error("api returned an unknown error: `{0}`")] + #[error("api returned an unknown error `{0}`")] UnrecognizedApiError(String), } -- cgit v1.2.3