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

问题描述

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...