(see Rust dreams for a similar list, but for the language)
Here are things I wish could be changed in the Rust standard library (std).
-
Remove
std
, and retainalloc
without any of the types incollections
module.That removed code can have official status (to retain trust), maybe even distributed with rustup (to retain convenience).
-
Rename
Vec
toArray
, a more clear/obvious name. An alternative isList
, but that type in Python accepts members of different types, which is not the case forVec
. -
Consistent names for string-y types:
current wish string str Str String StrOwned os string OsStr OsStr (same) OsString OsStrOwned C string CStr CStr (same) CString CStrOwned fs path Path Path (same) PathBuf PathOwned -
Remove
std::sync::mpsc
from stdlib, making it available externally... it does not feel general enough. (more issues) -
Remove per-type methods where trait impls offer same functionality, for generality:
current wish PathBuf::as_path PathBuf::as_ref Path::to_path_buf Path::to_owned Vec::append Vec::extend -
Remove all deprecated APIs, most notable being the
try!
macro -
Renames of panic methods (inspiration)
current wish foo.unwrap (remove) foo.expect("message") foo.or_panic("message") foo.unwrap_or foo.or foo.unwrap_or_default foo.or_default foo.unwrap_or_else foo.or_else It feels somewhat implicit, but maybe not so bad.