use auto_enums::enum_derive; enum Enum { A(A), B(B), } impl ::std::io::Seek for Enum where A: ::std::io::Seek, B: ::std::io::Seek, { #[inline] fn seek(&mut self, pos: ::std::io::SeekFrom) -> ::std::io::Result { match self { Enum::A(x) => ::seek(x, pos), Enum::B(x) => ::seek(x, pos), } } } fn main() {}