我想使用 sdp
板条箱解析存储在 Vec中的 SDP 消息。我发现这个函数可以做到这一点:
pub fn unmarshal<R>(reader: &mut R) -> Result<Self>
where
R: io::BufRead + io::Seek { ... }
但是我不知道如何创建一个可以从 Vec 实现 Seek 和 BufRead 的阅读器
我成功地从 vec 创建了 BufReader:
let body: Vec<u8> = ....;
let mut reader = BufReader::new(body.as_slice());
但它似乎没有实现 Seek 特性。
let sdp = SessionDescription::unmarshal(&mut reader);
错误:
the trait bound `&[u8]: std::io::Seek` is not satisfied
the trait `std::io::Seek` is implemented for `std::io::BufReader<R>`
required for `std::io::BufReader<&[u8]>` to implement `std::io::Seek`
std::io::Cursor
包装了实现 AsRef<[u8]>
的任何内容(包括字节切片、对字节切片的引用、Vec<u8>
等)并提供 Read
和 Seek
实现(对字节切片的常规引用 (&[u8]
) ,而不是 [u8]
)仅实施 Read
,因为他们无法维持“当前位置”)。