#rust #hyper
#Ржавчина #гипер
Вопрос:
Я хочу отправить определенное количество байт (например, 1 ГБ) в виде ответа без фрагментов на создаваемом мной гипер-сервере. Я новичок в Rust и подумал, что мог бы использовать Rust-эквивалент byte slice, но это не сработало. Интересно, каков наилучший способ добиться этого.
let mut bytes = BytesMut::with_capacity(64).freeze();
Ok(Response::new(Body::from(bytes)))
Это возвращает ответ с длиной содержимого 0, но я хочу, чтобы он возвращал 64 байта.
Ответ №1:
BytesMut::with_capacity
буфер ничем не заполняется. Он только предварительно выделяет буфер в 64 байта, но оставляет длину равной нулю. В документации указано это вместе с примером кода, который показывает, что буфер по-прежнему пуст, если вы не добавите в него что-либо.
Если вы хотите отправить 64 байта и вам все равно, какие они, попробуйте заполнить нулем Vec
:
Ok(Response::new(Body::from(vec![0; 64])))