diff options
Diffstat (limited to 'jsonrpc/src')
-rw-r--r-- | jsonrpc/src/client/builder.rs | 44 | ||||
-rw-r--r-- | jsonrpc/src/client/message_dispatcher.rs | 11 | ||||
-rw-r--r-- | jsonrpc/src/client/mod.rs | 2 | ||||
-rw-r--r-- | jsonrpc/src/server/builder.rs | 36 |
4 files changed, 62 insertions, 31 deletions
diff --git a/jsonrpc/src/client/builder.rs b/jsonrpc/src/client/builder.rs index d1e3b67..9adaa51 100644 --- a/jsonrpc/src/client/builder.rs +++ b/jsonrpc/src/client/builder.rs @@ -28,8 +28,10 @@ impl Client { /// use karyon_jsonrpc::Client; /// /// async { - /// let builder = Client::builder("ws://127.0.0.1:3000").unwrap(); - /// let client = builder.build().await.unwrap(); + /// let builder = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder"); + /// let client = builder.build().await + /// .expect("Build a new client"); /// }; /// ``` pub fn builder(endpoint: impl ToEndpoint) -> Result<ClientBuilder> { @@ -63,9 +65,11 @@ impl ClientBuilder { /// use karyon_jsonrpc::Client; /// /// async { - /// let client = Client::builder("ws://127.0.0.1:3000").unwrap() + /// let client = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder") /// .set_timeout(5000) - /// .build().await.unwrap(); + /// .build().await + /// .expect("Build a new client"); /// }; /// ``` pub fn set_timeout(mut self, timeout: u64) -> Self { @@ -87,9 +91,11 @@ impl ClientBuilder { /// use karyon_jsonrpc::Client; /// /// async { - /// let client = Client::builder("ws://127.0.0.1:3000").unwrap() + /// let client = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder") /// .set_max_subscription_buffer_size(10000) - /// .build().await.unwrap(); + /// .build().await + /// .expect("Build a new client"); /// }; /// ``` pub fn set_max_subscription_buffer_size(mut self, size: usize) -> Self { @@ -107,8 +113,12 @@ impl ClientBuilder { /// async { /// let tcp_config = TcpConfig::default(); /// - /// let client = Client::builder("ws://127.0.0.1:3000").unwrap() - /// .tcp_config(tcp_config).unwrap().build().await.unwrap(); + /// let client = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder") + /// .tcp_config(tcp_config) + /// .expect("Add tcp config") + /// .build().await + /// .expect("Build a new client"); /// }; /// ``` /// @@ -135,9 +145,12 @@ impl ClientBuilder { /// async { /// let tls_config = rustls::ClientConfig::new(...); /// - /// let client_builder = Client::builder("ws://127.0.0.1:3000").unwrap() - /// .tls_config(tls_config, "example.com").unwrap() - /// .build().await.unwrap(); + /// let client_builder = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder") + /// .tls_config(tls_config, "example.com") + /// .expect("Add tls config") + /// .build().await + /// .expect("Build a new client"); /// }; /// ``` /// @@ -168,10 +181,13 @@ impl ClientBuilder { /// /// async { /// let tcp_config = TcpConfig::default(); - /// let client = Client::builder("ws://127.0.0.1:3000").unwrap() - /// .tcp_config(tcp_config).unwrap() + /// let client = Client::builder("ws://127.0.0.1:3000") + /// .expect("Create a new client builder") + /// .tcp_config(tcp_config) + /// .expect("Add tcp config") /// .set_timeout(5000) - /// .build().await.unwrap(); + /// .build().await + /// .expect("Build a new client"); /// }; /// /// ``` diff --git a/jsonrpc/src/client/message_dispatcher.rs b/jsonrpc/src/client/message_dispatcher.rs index f370985..53dd9e5 100644 --- a/jsonrpc/src/client/message_dispatcher.rs +++ b/jsonrpc/src/client/message_dispatcher.rs @@ -48,10 +48,13 @@ impl MessageDispatcher { /// If a channel is registered for the response's ID, the response is sent /// through that channel. If no channel is found for the ID, returns an error. pub(super) async fn dispatch(&self, res: message::Response) -> Result<()> { - if res.id.is_none() { - return Err(Error::InvalidMsg("Response id is none")); - } - let id: RequestID = serde_json::from_value(res.id.clone().unwrap())?; + let res_id = match res.id { + Some(ref rid) => rid.clone(), + None => { + return Err(Error::InvalidMsg("Response id is none")); + } + }; + let id: RequestID = serde_json::from_value(res_id)?; let val = self.chans.lock().await.remove(&id); match val { Some(tx) => tx.send(res).await.map_err(Error::from), diff --git a/jsonrpc/src/client/mod.rs b/jsonrpc/src/client/mod.rs index 6f6bd97..b54656b 100644 --- a/jsonrpc/src/client/mod.rs +++ b/jsonrpc/src/client/mod.rs @@ -164,7 +164,7 @@ impl Client { // It should be OK to unwrap here, as the message dispatcher checks // for the response id. - if *response.id.as_ref().unwrap() != id { + if *response.id.as_ref().expect("Get response id") != id { return Err(Error::InvalidMsg("Invalid response id")); } diff --git a/jsonrpc/src/server/builder.rs b/jsonrpc/src/server/builder.rs index 01daf8e..feb51ec 100644 --- a/jsonrpc/src/server/builder.rs +++ b/jsonrpc/src/server/builder.rs @@ -41,9 +41,11 @@ impl ServerBuilder { /// } /// /// async { - /// let server = Server::builder("ws://127.0.0.1:3000").unwrap() + /// let server = Server::builder("ws://127.0.0.1:3000") + /// .expect("Create a new server builder") /// .service(Arc::new(Ping{})) - /// .build().await.unwrap(); + /// .build().await + /// .expect("Build the server"); /// }; /// /// ``` @@ -100,10 +102,12 @@ impl ServerBuilder { /// /// async { /// let ping_service = Arc::new(Ping{}); - /// let server = Server::builder("ws://127.0.0.1:3000").unwrap() + /// let server = Server::builder("ws://127.0.0.1:3000") + /// .expect("Create a new server builder") /// .service(ping_service.clone()) /// .pubsub_service(ping_service) - /// .build().await.unwrap(); + /// .build().await + /// .expect("Build the server"); /// }; /// /// ``` @@ -121,9 +125,12 @@ impl ServerBuilder { /// /// async { /// let tcp_config = TcpConfig::default(); - /// let server = Server::builder("ws://127.0.0.1:3000").unwrap() - /// .tcp_config(tcp_config).unwrap() - /// .build().await.unwrap(); + /// let server = Server::builder("ws://127.0.0.1:3000") + /// .expect("Create a new server builder") + /// .tcp_config(tcp_config) + /// .expect("Add tcp config") + /// .build().await + /// .expect("Build the server"); /// }; /// ``` /// @@ -149,9 +156,12 @@ impl ServerBuilder { /// /// async { /// let tls_config = rustls::ServerConfig::new(...); - /// let server = Server::builder("ws://127.0.0.1:3000").unwrap() - /// .tls_config(tls_config).unwrap() - /// .build().await.unwrap(); + /// let server = Server::builder("ws://127.0.0.1:3000") + /// .expect("Create a new server builder") + /// .tls_config(tls_config) + /// .expect("Add tls config") + /// .build().await + /// .expect("Build the server"); /// }; /// ``` /// @@ -191,8 +201,10 @@ impl Server { /// ``` /// use karyon_jsonrpc::Server; /// async { - /// let server = Server::builder("ws://127.0.0.1:3000").unwrap() - /// .build().await.unwrap(); + /// let server = Server::builder("ws://127.0.0.1:3000") + /// .expect("Create a new server builder") + /// .build().await + /// .expect("Build the server"); /// }; /// ``` pub fn builder(endpoint: impl ToEndpoint) -> Result<ServerBuilder> { |