feat(client): remove Clone requirement for NetworkStream in Client
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/net.rs
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								src/net.rs
									
									
									
									
									
								
							| @@ -53,25 +53,12 @@ impl<'a, N: NetworkListener + 'a> Iterator for NetworkConnections<'a, N> { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /// An abstraction over streams that a Server can utilize. | /// An abstraction over streams that a Server can utilize. | ||||||
| pub trait NetworkStream: Read + Write + Any + StreamClone + Send + Typeable { | pub trait NetworkStream: Read + Write + Any + Send + Typeable { | ||||||
|     /// Get the remote address of the underlying connection. |     /// Get the remote address of the underlying connection. | ||||||
|     fn peer_addr(&mut self) -> io::Result<SocketAddr>; |     fn peer_addr(&mut self) -> io::Result<SocketAddr>; | ||||||
| } | } | ||||||
|  |  | ||||||
| #[doc(hidden)] |  | ||||||
| pub trait StreamClone { |  | ||||||
|     fn clone_box(&self) -> Box<NetworkStream + Send>; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| impl<T: NetworkStream + Send + Clone> StreamClone for T { |  | ||||||
|     #[inline] |  | ||||||
|     fn clone_box(&self) -> Box<NetworkStream + Send> { |  | ||||||
|         Box::new(self.clone()) |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /// A connector creates a NetworkStream. | /// A connector creates a NetworkStream. | ||||||
| pub trait NetworkConnector { | pub trait NetworkConnector { | ||||||
|     /// Type of Stream to create |     /// Type of Stream to create | ||||||
| @@ -92,11 +79,6 @@ impl fmt::Debug for Box<NetworkStream + Send> { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| impl Clone for Box<NetworkStream + Send> { |  | ||||||
|     #[inline] |  | ||||||
|     fn clone(&self) -> Box<NetworkStream + Send> { self.clone_box() } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| impl NetworkStream + Send { | impl NetworkStream + Send { | ||||||
|     unsafe fn downcast_ref_unchecked<T: 'static>(&self) -> &T { |     unsafe fn downcast_ref_unchecked<T: 'static>(&self) -> &T { | ||||||
|         mem::transmute(traitobject::data(self)) |         mem::transmute(traitobject::data(self)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user