我正在做一些USB工作,我的设计有一个通用的缓冲区类型,其特征界限为AsRef<[u8]>
和AsMut<[u8]>
。我发现这些特质限制了#34;感染&#34;所有更高层,我必须重复指定它们。有没有办法整理一下?例如:
pub struct Transfer<B: AsRef<[u8]> + AsMut<[u8]>> {
pub buf: B,
// ...
}
impl<B: AsRef<[u8]> + AsMut<[u8]>> Transfer<B> {
// ...
}
pub struct Device<B: AsRef<[u8]> + AsMut<[u8]>> {
transfers: Vec<Option<Transfer<B>>>,
// ...
}
impl<B: AsRef<[u8]> + AsMut<[u8]>> Device<B> {
// ...
}
impl<B: AsRef<[u8]> + AsMut<[u8]>> Evented for Device<B> {
// ...
}