1/6

A blanket impl implements a trait for every type satisfying a bound, in one block:

impl<T: Display> Loggable for T {
    fn log_line(&self) -> String {
        format!("[log] {}", self)
    }
}

Now 42.log_line() and "rpc down".log_line() both work, and so does every type anyone will ever write that implements Display.

The standard library uses this heavily. ToString is a blanket impl over Display; Into<U> is a blanket impl over From<T>. That is why implementing From gives you Into for free and you should never implement Into by hand.