У меня есть следующая структура в Rust, которую я хочу вернуть из своего сервиса:
#[derive(PartialEq,Clone,Default)]
pub struct Response {
pub names: ::protobuf::RepeatedField<String>,
}
, и я установил его поле names
(см. документ о еговведите) следующим образом:
use protobuf::{Message, RepeatedField};
use futures::future::Future;
use futures::Stream;
fn create_response(names: impl Stream<Item = String, Error = CustomError>) -> Result<Response, CustomError>
let names = names.collect().wait()?;
let mut response = Response::new();
response.set_names(RepeatedField::from_vec(names));
Ok(response)
}
Теперь я хочу оптимизировать этот фрагмент кода и избежать блокировки операции collect
.Есть ли способ направить это names
непосредственно в поле response.names
(т. Е. Избежать этапа создания вектора names
)?