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
github.com
## Summary [summary]: #summary Enable the compiler to select whether a target dynamically or statically links to a platform's standard C runtime ("CRT") through the introduction of three orthogonal and otherwise general purpose features, on...
RFC 1721
RFC
2016-08-18
~12 min read
github.com
## Summary [summary]: #summary Make compiler aware of the association between library names adorning `extern` blocks and symbols defined within the block. Add attributes and command line switches that leverage this association. ## Motivatio...
RFC 1717
RFC
2016-08-13
~4 min read
github.com
## Summary [summary]: #summary Better ergonomics for pattern-matching on references. Currently, matching on references requires a bit of a dance using `ref` and `&` patterns: ```rust let x: &Option<_> = &Some(0); match x { &Some(ref y) => {...
RFC 2005
RFC
2016-08-12
~12 min read
github.com
## Summary [summary]: #summary A refinement of the Rust planning and reporting process, to establish a shared vision of the project among contributors, to make clear the roadmap toward that vision, and to celebrate our achievements. Rust's...
RFC 1728
RFC
2016-08-07
~19 min read