如何创建特定数量的结果向量?

问题描述

我正在尝试发送没有内容长度标头的特定大小的数据流。我相信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值。