github.com
## Summary Make the `count` parameter of `SliceExt::splitn`, `StrExt::splitn` and corresponding reverse variants mean the *maximum number of items returned*, instead of the *maximum number of times to match the separator*. ## Motivation The...
RFC 979
RFC
2015-03-15
~2 min read
github.com
## Summary Rust's `Write` trait has the `write_all` method, which is a convenience method that writes a whole buffer, failing with `ErrorKind::WriteZero` if the buffer cannot be written in full. This RFC proposes adding its `Read` counterpa...
RFC 980
RFC
2015-03-15
~10 min read
github.com
## Summary Add the family of `[Op]Assign` traits to allow overloading assignment operations like `a += b`. ## Motivation We already let users overload the binary operations, letting them overload the assignment version is the next logical s...
RFC 953
RFC
2015-03-08
~2 min read
github.com
## Summary Disallow hyphens in Rust crate names, but continue allowing them in Cargo packages. ## Motivation This RFC aims to reconcile two conflicting points of view. First: hyphens in crate names are awkward to use, and inconsistent with...
RFC 940
RFC
2015-03-05
~3 min read
github.com
## Summary Replace `Entry::get` with `Entry::or_insert` and `Entry::or_insert_with` for better ergonomics and clearer code. ## Motivation Entry::get was introduced to reduce a lot of the boiler-plate involved in simple Entry usage. Two incr...
RFC 921
RFC
2015-03-01
~2 min read
github.com
## Summary This RFC proposes to expand, and make more explicit, Rust's governance structure. It seeks to supplement today's core team with several *subteams* that are more narrowly focused on specific areas of interest. *Thanks to Nick Came...
RFC 1068
RFC
2015-02-27
~25 min read
github.com
## Summary Move the contents of `std::thread_local` into `std::thread`. Fully remove `std::thread_local` from the standard library. ## Motivation Thread locals are directly related to threading. Combining the modules would reduce the number...
RFC 909
RFC
2015-02-25
~1 min read
github.com
## Summary Allow marking free functions and inherent methods as `const`, enabling them to be called in constants contexts, with constant arguments. ## Motivation As it is right now, `UnsafeCell` is a stabilization and safety hazard: the fie...
RFC 911
RFC
2015-02-25
~7 min read
github.com
## Summary Allow inherent implementations on types outside of the module they are defined in, effectively reverting [RFC PR 155](https://github.com/rust-lang/rfcs/pull/155). ## Motivation The main motivation for disallowing such `impl` bodi...
RFC 735
RFC
2015-02-19
~2 min read
github.com
## Summary Add intrinsics for single-threaded memory fences. ## Motivation Rust currently supports memory barriers through a set of intrinsics, `atomic_fence` and its variants, which generate machine instructions and are suitable as cross-p...
RFC 888
RFC
2015-02-19
~1 min read
github.com
## Summary Support the `#[must_use]` attribute on arbitrary functions, to make the compiler lint when a call to such a function is ignored. Mark `PartialEq::{eq, ne}` `#[must_use]` as well as `PartialOrd::{lt, gt, le, ge}`. ## Motivation Th...
RFC 1940
RFC
2015-02-18
~3 min read
github.com
## Summary Stabilize all string functions working with search patterns around a new generic API that provides a unified way to define and use those patterns. ## Motivation Right now, string slices define a couple of methods for string manip...
RFC 528
RFC
2015-02-17
~16 min read
github.com
## Summary Pare back the `std::hash` module's API to improve ergonomics of usage and definitions. While an alternative scheme more in line with what Java and C++ have is considered, the current `std::hash` module will remain largely as-is w...
RFC 823
RFC
2015-02-17
~12 min read
github.com
## Summary Lex binary and octal literals as if they were decimal. ## Motivation Lexing all digits (even ones not valid in the given base) allows for improved error messages & future proofing (this is more conservative than the current appro...
RFC 879
RFC
2015-02-17
~2 min read
github.com
## Summary Allow macros in type positions ## Motivation Macros are currently allowed in syntax fragments for expressions, items, and patterns, but not for types. This RFC proposes to lift that restriction. 1. This would allow macros to be u...
RFC 873
RFC
2015-02-16
~5 min read
github.com
## Summary Allow renaming imports when importing a group of symbols from a module. ```rust use std::io::{ Error as IoError, Result as IoResult, Read, Write } ``` ## Motivation The current design requires the above example to be written like...
RFC 1219
RFC
2015-02-15
~1 min read
github.com
## Summary Make all collections `impl<'a, T: Copy> Extend<&'a T>`. This enables both `vec.extend(&[1, 2, 3])`, and `vec.extend(&hash_set_of_ints)`. This partially covers the usecase of the awkward `Vec::push_all` with literally no ergonomic...
RFC 839
RFC
2015-02-13
~2 min read
github.com
## Summary Remove panics from `CString::from_slice` and `CString::from_vec`, making these functions return `Result` instead. ## Motivation > As I shivered and brooded on the casting of that brain-blasting shadow, > I knew that I had at last...
RFC 840
RFC
2015-02-13
~2 min read
github.com
## Summary Add a default lifetime bound for object types, so that it is no longer necessary to write things like `Box<Trait+'static>` or `&'a (Trait+'a)`. The default will be based on the context in which the object type appears. Typically,...
RFC 599
RFC
2015-02-12
~11 min read
github.com
## Summary Add back the functionality of `Vec::from_elem` by improving the `vec![x; n]` sugar to work with Clone `x` and runtime `n`. ## Motivation High demand, mostly. There are currently a few ways to achieve the behaviour of `Vec::from_e...
RFC 832
RFC
2015-02-11
~2 min read