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

How to create a vector of a specific number of Results?

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