aboutsummaryrefslogtreecommitdiff
path: root/jsonrpc/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'jsonrpc/src/error.rs')
-rw-r--r--jsonrpc/src/error.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/jsonrpc/src/error.rs b/jsonrpc/src/error.rs
index 7f89729..d68e169 100644
--- a/jsonrpc/src/error.rs
+++ b/jsonrpc/src/error.rs
@@ -11,6 +11,9 @@ pub enum Error {
#[error("Call Error: code: {0} msg: {1}")]
CallError(i32, String),
+ #[error("Subscribe Error: code: {0} msg: {1}")]
+ SubscribeError(i32, String),
+
#[error("RPC Method Error: code: {0} msg: {1}")]
RPCMethodError(i32, &'static str),
@@ -29,6 +32,15 @@ pub enum Error {
#[error("Unsupported protocol: {0}")]
UnsupportedProtocol(String),
+ #[error("Subscription not found: {0}")]
+ SubscriptionNotFound(String),
+
+ #[error(transparent)]
+ ChannelRecv(#[from] async_channel::RecvError),
+
+ #[error("Channel broadcast Error: {0}")]
+ ChannelBroadcast(String),
+
#[error("Unexpected Error: {0}")]
General(&'static str),
@@ -38,3 +50,9 @@ pub enum Error {
#[error(transparent)]
KaryonNet(#[from] karyon_net::Error),
}
+
+impl<T> From<async_channel::SendError<T>> for Error {
+ fn from(error: async_channel::SendError<T>) -> Self {
+ Error::ChannelBroadcast(error.to_string())
+ }
+}