Thank you @Cerber-Ursi for the explanation. But why did you make &Self and &&mut T identical? My understanding is that &Self is &mut T. Where the second referencing comes from?
Self is always the type you are impling for. A generic type placeholder can stand for anything – if you are impling for a reference, then it will stand for a reference. Rust's type system is uniform and consistent like that.