Например, я хочу сделать метод read_one_byte для всех типов, для которых сделан impl Read. Код выглядит так:
impl<T: Write> T {
fn read_one_byte(&self) -> Option<u8> {
let mut buf = [0u8];
match self.read(&mut buf) {
Ok(count) if count == 1 => Some(buf[0]),
_ => None,
}
}
}
При компиляции получаю ошибку
error[E0118]: no base type found for inherent implementation
--> src/main.rs:4:16
|
4 | impl<T: Write> T {
| ^ impl requires a base type
|
= note: either implement a trait on it or create a newtype to wrap it instead
https://doc.rust-lang.org/error-index.html#E0118
Мне, конечно, совсем не нужна такая функция, но она как пример того, что я хочу сделать.