#![allow(unused_variables)] #[derive(Debug)] struct File; trait Read { fn read(self: &Self, save_to: &mut Vec) -> Result; } impl Read for File { fn read(self: &File, save_to: &mut Vec) -> Result { Ok(0) } } fn main() { let f = File{}; let mut buffer = vec!(); let n_bytes = f.read(&mut buffer).unwrap(); println!("{} byte(s) read from {:?}", n_bytes, f); }