github.com
## Summary [summary]: #summary Finalize syntax of `impl Trait` and `dyn Trait` with multiple bounds before stabilization of these features. ## Motivation [motivation]: #motivation Current priority of `+` in `impl Trait1 + Trait2` / `dyn Tra...
RFC 2250
RFC
2017-12-16
~7 min read
github.com
## Summary [summary]: #summary Expand the traits implemented by structs `libc` crate to include `Debug`, `Eq`, `Hash`, and `PartialEq`. ## Motivation [motivation]: #motivation This will allow downstream crates to easily support similar oper...
RFC 2235
RFC
2017-12-05
~3 min read
github.com
## Default implementation of `Error::description()` [summary]: #summary Provide a default implementation of the `Error` trait's `description()` method to save users trouble of implementing this flawed method. ## Motivation [motivation]: #mo...
RFC 2230
RFC
2017-11-29
~1 min read
github.com
## Summary [summary]: #summary This RFC proposes that closure capturing should be minimal rather than maximal. Conceptually, existing rules regarding borrowing and moving disjoint fields should be applied to capturing. If implemented, the f...
RFC 2229
RFC
2017-11-28
~7 min read
github.com
## Summary [summary]: #summary Add support for formatting integers as hexadecimal with the `fmt::Debug` trait, including when they occur within larger types. ```rust println!("{:02X?}", b"AZaz\0") ``` ``` [41, 5A, 61, 7A, 00] ``` ## Motivat...
RFC 2226
RFC
2017-11-24
~3 min read
github.com
## Summary Introduce a mechanism for Cargo crates to make use of declarative build scripts, obtained from one or more of their dependencies rather than via a `build.rs` file. Support experimentation with declarative build scripts in the cra...
RFC 2196
RFC
2017-10-31
~5 min read
github.com
## Summary [summary]: #summary Formally define the enum `#[repr(u32, i8, etc..)]` and `#[repr(C)]` attributes to force a non-C-like enum to have a defined layouts. This serves two purposes: allowing low-level Rust code to independently init...
RFC 2195
RFC
2017-10-30
~13 min read
github.com
## Summary [summary]: #summary Relaxes the rules for repeat expressions, `[x; N]` such that `x` may also be `const` *(strictly speaking rvalue promotable)*, in addition to `typeof(x): Copy`. The result of `[x; N]` where `x` is `const` is it...
RFC 2203
RFC
2017-10-20
~4 min read
github.com
## Summary [summary]: #summary [`if let`]: https://github.com/rust-lang/rfcs/pull/160 [`while let`]: https://github.com/rust-lang/rfcs/pull/214 Enables "or" patterns for [`if let`] and [`while let`] expressions as well as `let` and `for` st...
RFC 2175
RFC
2017-10-16
~7 min read
github.com
## Summary [summary]: #summary This RFC proposes the addition of a modulo method with more useful and mathematically regular properties over the built-in remainder `%` operator when the dividend or divisor is negative, along with the associ...
RFC 2169
RFC
2017-10-09
~4 min read
github.com
## Summary [summary]: #summary The `use …::{… as …}` syntax can now accept `_` as alias to a trait to only import the implementations of such a trait. ## Motivation [motivation]: #motivation Sometimes, we might need to `use` a trait to be a...
RFC 2166
RFC
2017-10-01
~2 min read
github.com
Moved to [2071-impl-trait-existential-types.md](2071-impl-trait-existential-types.md).
RFC 2071
RFC
2017-09-18
~1 min read
github.com
## Summary [summary]: #summary Add a raw identifier format `r#ident`, so crates written in future language editions/versions can still use an older API that overlaps with new keywords. ## Motivation [motivation]: #motivation One of the prim...
RFC 2151
RFC
2017-09-14
~5 min read
github.com
## Summary [summary]: #summary Type privacy rules are documented. Private-in-public errors are relaxed and turned into lints. ## Motivation [motivation]: #motivation Type privacy is implemented, but its rules still need to be documentated a...
RFC 2145
RFC
2017-09-09
~15 min read
github.com
## Summary [summary]: #summary This RFC proposes the addition of the support for alternative crates.io servers to be used alongside the public crates.io server. This would allow users to publish crates to their own private instance of crate...
RFC 2141
RFC
2017-09-06
~13 min read
github.com
## Summary [summary]: #summary This **experimental RFC** lays out a high-level plan for improving Cargo's ability to integrate with other build systems and environments. As an experimental RFC, it opens the door to landing [unstable feature...
RFC 2136
RFC
2017-09-01
~20 min read
github.com
## Summary [summary]: #summary Add compiler-generated `Clone` implementations for tuples and arrays with `Clone` elements of all lengths. ## Motivation [motivation]: #motivation Currently, the `Clone` trait for arrays and tuples is implemen...
RFC 2133
RFC
2017-08-28
~5 min read
github.com
## Summary [summary]: #summary Implement `Clone` and `Copy` for closures where possible: ```rust // Many closures can now be passed by-value to multiple functions: fn call<F: FnOnce()>(f: F) { f() } let hello = || println!("Hello, world!");...
RFC 2132
RFC
2017-08-27
~4 min read
github.com
## Summary [summary]: #summary Permit nested `{}` groups in imports. Permit `*` in `{}` groups in imports. ```rust use syntax::{ tokenstream::TokenTree, // >1 segments ext::base::{ExtCtxt, MacResult, DummyResult, MacEager}, // nested braces...
RFC 2128
RFC
2017-08-25
~3 min read
github.com
## This RFC was previously approved, but part of it later **withdrawn** The `crate` visibility specifier was previously implemented, but later removed. For details see the [summary comment]. [summary comment]: https://github.com/rust-lang/r...
RFC 2126
RFC
2017-08-24
~21 min read