For functions in an impl block we use this syntax:
fn test(&mut self) {}
But for a normal function we use this syntax:
fn test(data: &mut u64) {}
I understand self is a variable, while Self is type. In first case we use &mut with the variable (self), but in the second then we used &mut with the type (u64). Why is there this inconsistency?