使用字节库将字节转换为 Buf
Convert Bytes to Buf with bytes library
我正在尝试将 reqwest 文件下载的结果转换为实现 Read
trait. Reqwest has given back a Bytes
类型的类型。字节似乎没有实现 Read
特性,但在同一个库中有 Buf
确实实现了 Read
.
我一直在尝试找到一种方法将 Bytes
转换为 Buf
但我还没有找到方法。如果我想获得实现 Read
的东西并且有没有办法通过将 Bytes
转换为 Buf
来做到这一点,我是否以正确的方式进行?
注意 Bytes
already implements Buf
。但是你需要在作用域中拥有特性才能使用它:
fn main() {
use bytes::Bytes;
use bytes::Buf;
let mut buf = Bytes::from("Hello world");
assert_eq!(b'H', buf.get_u8());
}
考虑到这一点,如果您需要 Read
object, you can call the method reader
来获得这样的类型:
fn main() {
use bytes::Bytes;
use bytes::Buf;
use std::io::Read;
let mut buf = Bytes::from("Hello world");
let mut reader: Box<dyn Read> = Box::new(buf.reader()) as Box<dyn Read>;
}
我正在尝试将 reqwest 文件下载的结果转换为实现 Read
trait. Reqwest has given back a Bytes
类型的类型。字节似乎没有实现 Read
特性,但在同一个库中有 Buf
确实实现了 Read
.
我一直在尝试找到一种方法将 Bytes
转换为 Buf
但我还没有找到方法。如果我想获得实现 Read
的东西并且有没有办法通过将 Bytes
转换为 Buf
来做到这一点,我是否以正确的方式进行?
注意 Bytes
already implements Buf
。但是你需要在作用域中拥有特性才能使用它:
fn main() {
use bytes::Bytes;
use bytes::Buf;
let mut buf = Bytes::from("Hello world");
assert_eq!(b'H', buf.get_u8());
}
考虑到这一点,如果您需要 Read
object, you can call the method reader
来获得这样的类型:
fn main() {
use bytes::Bytes;
use bytes::Buf;
use std::io::Read;
let mut buf = Bytes::from("Hello world");
let mut reader: Box<dyn Read> = Box::new(buf.reader()) as Box<dyn Read>;
}