What you describe sounds a bit like named impls, which have to be imported before they can be used. It was before I got into Rust, so don’t quote me on this, but I think this feature existed in pre-1.0 Rust and got removed because there were some sort of issues with them.
There are moves to get named impls into Rust (see here and here), but I haven’t heard from them in a while. They might need some help being pushed along by a motivated party.