当需要特征搜索时,如何将Vec <t>传递给函数?

时间:2018-11-05 00:51:58

标签: generics rust traits

我有一个API,我需要将Vec<u8>传递给该API,该API需要使用其参数来实现std::io::Seek

fn some_func<T: Seek + Write>(foo: &mut T) {/* body */}

板条箱作者建议在此处使用File,但是我想避免在此处使用它,因为这会导致不必要的文件创建。 Vec<u8>满足Write特征,但不满足Seek特征。有什么方法可以避免在这里使用File

1 个答案:

答案 0 :(得分:2)

您可以将Vec<u8>包裹在std::io::Cursor中:

let mut buf: Cursor<Vec<u8>> = Cursor::new(Vec::new());
some_func(&mut buf);