aboutsummaryrefslogtreecommitdiff
path: root/p2p
diff options
context:
space:
mode:
authorhozan23 <hozan23@proton.me>2023-11-18 00:54:09 +0300
committerhozan23 <hozan23@proton.me>2023-11-18 00:54:09 +0300
commitce82eb571b0f48a59f3a94cf61af9ccd1beea438 (patch)
treebd8ce05fade23455033d878a2781991af3326fa8 /p2p
parentf04ba793bbc15d021444c5010aaf0e4bae655ce0 (diff)
clean up error module and use `transparent` attribute
Diffstat (limited to 'p2p')
-rw-r--r--p2p/src/error.rs45
1 files changed, 15 insertions, 30 deletions
diff --git a/p2p/src/error.rs b/p2p/src/error.rs
index 91d2c39..5a62676 100644
--- a/p2p/src/error.rs
+++ b/p2p/src/error.rs
@@ -5,7 +5,7 @@ pub type Result<T> = std::result::Result<T, Error>;
/// Represents karyons's p2p Error.
#[derive(ThisError, Debug)]
pub enum Error {
- #[error("IO Error: {0}")]
+ #[error(transparent)]
IO(#[from] std::io::Error),
#[error("Unsupported protocol error: {0}")]
@@ -14,7 +14,16 @@ pub enum Error {
#[error("Invalid message error: {0}")]
InvalidMsg(String),
- #[error("Parse error: {0}")]
+ #[error(transparent)]
+ ParseIntError(#[from] std::num::ParseIntError),
+
+ #[error(transparent)]
+ ParseFloatError(#[from] std::num::ParseFloatError),
+
+ #[error(transparent)]
+ SemverError(#[from] semver::Error),
+
+ #[error("Parse Error: {0}")]
ParseError(String),
#[error("Incompatible version error: {0}")]
@@ -41,13 +50,13 @@ pub enum Error {
#[error("Channel Send Error: {0}")]
ChannelSend(String),
- #[error("Channel Receive Error: {0}")]
- ChannelRecv(String),
+ #[error(transparent)]
+ ChannelRecv(#[from] smol::channel::RecvError),
- #[error("CORE::ERROR : {0}")]
+ #[error(transparent)]
KaryonsCore(#[from] karyons_core::error::Error),
- #[error("NET::ERROR : {0}")]
+ #[error(transparent)]
KaryonsNet(#[from] karyons_net::NetError),
}
@@ -56,27 +65,3 @@ impl<T> From<smol::channel::SendError<T>> for Error {
Error::ChannelSend(error.to_string())
}
}
-
-impl From<smol::channel::RecvError> for Error {
- fn from(error: smol::channel::RecvError) -> Self {
- Error::ChannelRecv(error.to_string())
- }
-}
-
-impl From<std::num::ParseIntError> for Error {
- fn from(error: std::num::ParseIntError) -> Self {
- Error::ParseError(error.to_string())
- }
-}
-
-impl From<std::num::ParseFloatError> for Error {
- fn from(error: std::num::ParseFloatError) -> Self {
- Error::ParseError(error.to_string())
- }
-}
-
-impl From<semver::Error> for Error {
- fn from(error: semver::Error) -> Self {
- Error::ParseError(error.to_string())
- }
-}