问题描述
我正在尝试发送没有内容长度标头的特定大小的数据流。我相信hyper::body::Body::wrap_stream
是我想要的。但是,我不确定如何扩展创建文档中给出的结果向量的example来合并自定义大小。
我正在寻找类似的东西,但是我不知道解决vec![Ok(0); bytes]
问题的最佳方法。
let chunks: Vec<Result<_,std::io::Error>> = vec![Ok(0); bytes];
let stream = futures_util::stream::iter(chunks);
let body = Body::wrap_stream(stream);
解决方法
这里的问题是Result
没有实现Clone
,因此您不能使用此语法来初始化Vec
。
您可以通过如下更改使其起作用:
let mut chunks: Vec<Result<_,std::io::Error>> = Vec::new();
chunks.resize_with(bytes,|| Ok(0));
通过这种方式,您可以初始化独立的Result
值。