#![allow(dead_code, deprecated, unused_variables, unused_mut)] use core::ops::Deref; struct SomeType; impl Deref for SomeType { type Target = [u8]; fn deref(&self) -> &[u8] { &[] } } impl AsRef for SomeType where T: ?Sized, ::Target: AsRef, { fn as_ref(&self) -> &T { self.deref().as_ref() } } fn main() {}