Speed dating. Three minutes, a stranger, no expectations. But we clicked. &String becomes &str — two different types, suddenly compatible. The compiler sees it before you do.

Coercion in Rust refers to the implicit conversion of one type into another . Unlike explicit casting (using the `as` keyword), coercion happens automatically in specific "coercion sites" like function arguments, `let` bindings, and return values.

1. Deref Coercion

This is the most common form of coercion. If a type T implements the Deref trait, a reference to T (&T) can be implicitly converted to a reference of its target type U (&U) ``.

Key Concept: A common example is converting &String to &str or &Vec<T> to &[T] ``.