There exists a method called str::to_lowercase that allocates a string with unicode case conversion. I propose adding a method called str::as_lowercase with the signature
Using this method can avoid some allocations, which is perhaps most useful when allocation is not possible (no_std), but also in any performance-critical portion of code.
I can see how you would use unicase to compare strings, but I can't see how you would use it to create something that you can interpolate in a format string, that converts to lowercase on-the-fly.
True, but that's also a good idea for an implementation: create a wrapper class that you use only in println!() and friends which will format the string in lowercase without allocating, a bit like gpoint does for floating numbers.