浏览代码

Better public interface.

Jing Yang 5 年之前
父节点
当前提交
a2a8af4968
共有 4 个文件被更改,包括 8 次插入10 次删除
  1. 1 0
      src/lib.rs
  2. 3 7
      src/network.rs
  3. 3 2
      src/server.rs
  4. 1 1
      src/test_utils/junk_server.rs

+ 1 - 0
src/lib.rs

@@ -10,6 +10,7 @@ mod server;
 pub type Result<T> = std::io::Result<T>;
 pub use client::Client;
 pub use network::Network;
+pub use server::RpcHandler;
 pub use server::Server;
 
 // Messages passed on network.

+ 3 - 7
src/network.rs

@@ -70,11 +70,7 @@ impl Network {
         }
     }
 
-    pub fn set_enable_client<C: AsRef<str> + Sized>(
-        &mut self,
-        client: C,
-        yes: bool,
-    ) {
+    pub fn set_enable_client<C: AsRef<str>>(&mut self, client: C, yes: bool) {
         if let Some(pair) = self.clients.get_mut(client.as_ref()) {
             pair.0 = yes;
         }
@@ -88,11 +84,11 @@ impl Network {
         self.servers.insert(server_name.into(), server);
     }
 
-    pub fn remove_server<S: AsRef<str> + Sized>(&mut self, server_name: &S) {
+    pub fn remove_server<S: AsRef<str>>(&mut self, server_name: &S) {
         self.servers.remove(server_name.as_ref());
     }
 
-    pub fn get_rpc_count<S: AsRef<str> + Sized>(
+    pub fn get_rpc_count<S: AsRef<str>>(
         &self,
         server_name: S,
     ) -> Option<usize> {

+ 3 - 2
src/server.rs

@@ -1,7 +1,7 @@
 use std::collections::hash_map::Entry::Vacant;
 use std::sync::Arc;
 
-use crate::{ReplyMessage, RequestMessage, Result};
+use crate::{ReplyMessage, RequestMessage, Result, ServerIdentifier};
 
 pub trait RpcHandler {
     // Note this method is not async.
@@ -101,11 +101,12 @@ impl Server {
             .get()
     }
 
-    pub fn make_server(name: String) -> Self {
+    pub fn make_server<S: Into<ServerIdentifier>>(name: S) -> Self {
         let state = std::sync::Mutex::new(ServerState {
             rpc_handlers: std::collections::HashMap::new(),
             rpc_count: std::cell::Cell::new(0),
         });
+        let name = name.into();
         let thread_pool = futures::executor::ThreadPool::builder()
             .name_prefix(name.clone())
             .pool_size(Self::THREAD_POOL_SIZE)

+ 1 - 1
src/test_utils/junk_server.rs

@@ -44,7 +44,7 @@ impl RpcHandler for AbortingRpcHandler {
 }
 
 pub fn make_test_server() -> Arc<Server> {
-    let mut server = Server::make_server(TEST_SERVER.into());
+    let mut server = Server::make_server(TEST_SERVER);
     server
         .register_rpc_handler(
             JunkRpcs::Echo.name(),