> If you do need generic interface for better type-safety and ergonomics, make sure that the interface layer is thin, and that it immediately delegates to a non-generic implementation. The classical example to internalize here are various functions from str::fs module which operate on paths:
Nobody seems to care, but there's a crate that does this for you https://github.com/llogiq/momo
But the Rust compiler should be doing this automatically :(