&self : when Read-only reference is required to the function.

self : When a value is to be consumed by the function.

&mut : When a value needs to be mutated by the function with consuming it.

BY Best Interview Question ON 13 Jan 2019