The reason WTF-8 bytes are not exposed is not in case we change the internal representation later, it’s because anything one might do with them (except constructing another OsStr
) is almost certainly wrong. WTF-8 is a hack that we made up for a very specific purpose. I’d be very sad if it accidentally becomes the de-facto encoding of some protocol because someone copied WTF-8 bytes from an OsStr
into a file or a socket without realizing it’s not UTF-8. I’d very much prefer we don’t allow WTF-8 bytes to “leak” out of OsStr
. (Though of course someone determined enough can always use transmute
, but that’s less likely to be accidental.)
@kornel, what would you want to use this for?
As to encode_wide
, what would it do on platforms where OsStr
contains arbitrary bytes?