github.com
## Summary [summary]: #summary Improve the `assert_eq` failure message formatting to increase legibility. [Previous RFC issue](https://github.com/rust-lang/rfcs/issues/1864). ## Motivation [motivation]: #motivation Currently when `assert_eq...
RFC 1866
RFC
2017-01-23
~1 min read
github.com
## Summary [summary]: #summary This RFC proposes the addition of two macros to the global prelude, `eprint!` and `eprintln!`. These are exactly the same as `print!` and `println!`, respectively, except that they write to standard error inst...
RFC 1869
RFC
2017-01-23
~5 min read
github.com
## Summary [summary]: #summary Include the `ManuallyDrop` wrapper in `core::mem`. ## Motivation [motivation]: #motivation Currently Rust does not specify the order in which the destructors are run. Furthermore, this order differs depending...
RFC 1860
RFC
2017-01-20
~3 min read
github.com
## Summary [summary]: #summary I propose we specify and stabilize drop order in Rust, instead of treating it as an implementation detail. The stable drop order should be based on the current implementation. This results in avoiding breakage...
RFC 1857
RFC
2017-01-19
~5 min read
github.com
## Summary [summary]: #summary Introduce a trait `Try` for customizing the behavior of the `?` operator when applied to types other than `Result`. ## Motivation [motivation]: #motivation ### Using `?` with types other than `Result` The `?`...
RFC 1859
RFC
2017-01-19
~14 min read
github.com
## Summary [summary]: #summary Add an `extern type` syntax for declaring types which are opaque to Rust's type system. ## Motivation [motivation]: #motivation When interacting with external libraries we often need to be able to handle point...
RFC 1861
RFC
2017-01-18
~5 min read
github.com
## Summary [summary]: #summary Tuple `struct`s can now be constructed and pattern matched with `Self(v1, v2, ..)`. A simple example: ```rust struct TheAnswer(usize); impl Default for TheAnswer { fn default() -> Self { Self(42) } } ``` Simil...
RFC 2302
RFC
2017-01-18
~7 min read
github.com
## Summary [summary]: #summary This RFC proposes the addition of `Option::replace` to complete the `Option::take` method, it replaces the actual value in the option by `Some` with the value given in parameter, returning the old value if pre...
RFC 2296
RFC
2017-01-16
~1 min read
github.com
## UPDATE The lang team ultimately [decided to retract this RFC][retraction]. It was never implemented. The motivation for retraction was that the change was too prone to mis-use and did not provide adequate benefit. [retraction]: https://g...
RFC 1849
RFC
2017-01-08
~2 min read
github.com
## Summary [summary]: #summary This is an RFC to add the APIs: `From<&[T]> for Rc<[T]>` where [`T: Clone`][Clone] or [`T: Copy`][Copy] as well as `From<&str> for Rc<str>`. In addition: `From<Vec<T>> for Rc<[T]>` and `From<Box<T: ?Sized>> fo...
RFC 1845
RFC
2017-01-05
~12 min read
github.com
## Summary [summary]: #summary Create a "Rust Bookshelf" of learning resources for Rust. * Pull the book out of tree into `rust-lang/book`, which holds the second edition, currently. * Pull the nomicon and the reference out of tree and conv...
RFC 1828
RFC
2016-12-25
~3 min read
github.com
## Summary [summary]: #summary Change doc.rust-lang.org to redirect to the latest release instead of an alias of stable. Introduce a banner that contains a dropdown allowing users to switch between versions, noting when a release is not the...
RFC 1826
RFC
2016-12-22
~3 min read
github.com
## Summary [summary]: #summary Crates.io has many useful libraries for a variety of purposes, but it's difficult to find which crates are meant for a particular purpose and then to decide among the available crates which one is most suitabl...
RFC 1824
RFC
2016-12-19
~26 min read
github.com
## Summary [summary]: #summary There has long been a desire to expand the number of platform- and architecture-specific APIs in the standard library, and to offer subsets of the standard library for working in constrained environments. At t...
RFC 1868
RFC
2016-11-15
~20 min read
github.com
## Summary [summary]: #summary - Change `Cell<T>` to allow `T: ?Sized`. - Guarantee that `T` and `Cell<T>` have the same memory layout. - Enable the following conversions through the std lib: - `&mut T -> &Cell<T> where T: ?Sized` - `&Cell<...
RFC 1789
RFC
2016-11-13
~11 min read
github.com
## Summary [summary]: #summary This RFC proposes the *2017 Rust Roadmap*, in accordance with [RFC 1728](https://github.com/rust-lang/rfcs/pull/1728). The goal of the roadmap is to lay out a vision for where the Rust project should be in a y...
RFC 1774
RFC
2016-10-04
~22 min read
github.com
## Summary [summary]: #summary Extend the existing `#[repr]` attribute on newtypes with a `transparent` option specifying that the type representation is the representation of its only field. This matters in FFI context where `struct Foo(T)...
RFC 1758
RFC
2016-09-26
~3 min read
github.com
## Summary [summary]: #summary This RFC proposes a temporary solution to the problem of letting tools use attributes. We outline a (partial) long-term solution and propose a step towards that solution for tools which are part of the Rust di...
RFC 2103
RFC
2016-09-22
~8 min read
github.com
## Summary [summary]: #summary Traits can be aliased with the `trait TraitAlias = …;` construct. Currently, the right hand side is a bound – a single trait, a combination with `+` traits and lifetimes. Type parameters and lifetimes can be a...
RFC 1733
RFC
2016-08-31
~11 min read
github.com
## Summary [summary]: #summary Add two functions, `ptr::read_unaligned` and `ptr::write_unaligned`, which allows reading/writing to an unaligned pointer. All other functions that access memory (`ptr::{read,write}`, `ptr::copy{_nonoverlappin...
RFC 1725
RFC
2016-08-22
~1 min read