Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 将锈流从TcpListener分配到回路中的分离方法_Rust_Traits_Tcplistener - Fatal编程技术网

Rust 将锈流从TcpListener分配到回路中的分离方法

Rust 将锈流从TcpListener分配到回路中的分离方法,rust,traits,tcplistener,Rust,Traits,Tcplistener,我是生锈新手,代码如下: while-let-Some(tcp_-stream)=incoming.next(){ 匹配tcp_流{ 好的=>{ 处理请求(tcp\u stream.unwrap(),&路由); } 如果e.kind()==io::ErrorKind::WouldBlock=>{ 继续; } Err(e)=>恐慌!(“错误”), }; } 我得到以下错误: 移动值的使用:`tcp\u流` 部分移动后此处使用的值 注意:发生移动是因为值的类型为'std::net::TcpStre

我是生锈新手,代码如下:

while-let-Some(tcp_-stream)=incoming.next(){
匹配tcp_流{
好的=>{
处理请求(tcp\u stream.unwrap(),&路由);
}
如果e.kind()==io::ErrorKind::WouldBlock=>{
继续;
}
Err(e)=>恐慌!(“错误”),
};
}
我得到以下错误:

移动值的使用:`tcp\u流`
部分移动后此处使用的值
注意:发生移动是因为值的类型为'std::net::TcpStream',而该类型不实现'Copy'特性C(E0382)
lib.rs(72,20):移到此处的值
库rs(73,36):部分移动后此处使用的值
我想做的是用一个单独的方法处理新的连接/tcp流
handle\u request
,但我不确定如何去做。传递引用也会产生同样的问题。我尝试为
TcpStream
实现
Copy
特性,但由于我不在它的框架内,我似乎无法做到这一点


任何指点都将不胜感激

一个解决方案是在一个arm中执行错误检查:

异步fn侦听(self,侦听器:TcpListener){ 让routes=self.routes; 让mut incoming=listener.incoming(); while let Some(tcp_stream)=incoming.next(){ 匹配tcp_流{ 好的=>{ 处理请求(tcp\u stream.unwrap(),&路由); } 错误(e)=>{ 如果e.kind()==io::ErrorKind::WouldBlock{ 继续; } 恐慌!(“错误”); }, }; } }
Heya,你读过这本书了吗?我不确定你需要在回答中解释多少。。。简单地说,
match
语句使用您匹配的值,并且您希望使用从
结果中提取的
s:TcpStream
。尝试使用tcp\u流。尝试克隆()?哦,当然有意义,谢谢@Plecra!我也要读一下这一章。