From the survey, string ergonomics are huge. Many, many CLI applications deal heavily with strings. In Rust, strings can be...difficult.
Granted, (IMO) Rust handles them correctly, sometimes the correctness doesn't actually matter for a given problem domain and just adds unnecessary gyration.
For example, we have:
- (
&)('static)str
Cow
- (
&)String
- (
&)OsStr
- (
&)OsString
It's understanding it can be overwhelming. My personal opinion is we should first tackle/discuss the ergonomics of using OsStr(ing) as it's heavily used on Linux (where paths may not contain valid UTF-8).
IMO OsStr should have the same user experience as &str/String.
We could also probably start by either listing known issues/inconsistencies or any current issue links/RFCs on the matter.
From the survey, string ergonomics are huge. Many, many CLI applications deal heavily with strings. In Rust, strings can be...difficult.
Granted, (IMO) Rust handles them correctly, sometimes the correctness doesn't actually matter for a given problem domain and just adds unnecessary gyration.
For example, we have:
&)('static)strCow&)String&)OsStr&)OsStringIt's understanding it can be overwhelming. My personal opinion is we should first tackle/discuss the ergonomics of using
OsStr(ing)as it's heavily used on Linux (where paths may not contain valid UTF-8).IMO
OsStrshould have the same user experience as&str/String.We could also probably start by either listing known issues/inconsistencies or any current issue links/RFCs on the matter.