github.com
## Summary [summary]: #summary This is an *experimental RFC* for adding the ability to integrate custom test/bench/etc frameworks ("test frameworks") in Rust. ## Motivation [motivation]: #motivation Currently, Rust lets you write unit tests...
RFC 2318
RFC
2018-01-25
~10 min read
github.com
## Summary This RFC sets the *Rust 2018 Roadmap*, in accordance with [RFC 1728](https://github.com/rust-lang/rfcs/pull/1728). This year's goals are: - Ship an edition release: Rust 2018. - Build resources for intermediate Rustaceans. - Conn...
RFC 2314
RFC
2018-01-23
~22 min read
github.com
## Summary [summary]: #summary Add `std::num::NonZeroU32` and eleven other concrete types (one for each primitive integer type) to replace and deprecate `core::nonzero::NonZero<T>`. (Non-zero/non-null raw pointers are available through [`st...
RFC 2307
RFC
2018-01-21
~5 min read
github.com
## Summary [summary]: #summary Adds an identity function `pub const fn identity<T>(x: T) -> T { x }` as `core::convert::identity`. The function is also re-exported to `std::convert::identity`. ## Motivation [motivation]: #motivation ### The...
RFC 2306
RFC
2018-01-19
~5 min read
github.com
## Summary Add a repetition specifier to macros to repeat a pattern at most once: `$(pat)?`. Here, `?` behaves like `+` or `*` but represents at most one repetition of `pat`. ## Motivation There are two specific use cases in mind. ### Macro...
RFC 2298
RFC
2018-01-17
~5 min read
github.com
## Summary [summary]: #summary The special `Self` identifier is now permitted in `struct`, `enum`, and `union` type definitions. A simple example `struct` is: ```rust enum List<T> where Self: PartialOrd<Self> // <-- Notice the `Self` instea...
RFC 2300
RFC
2018-01-17
~14 min read
github.com
## Summary [summary]: #summary Generalize the WTF-8 encoding to allow `OsStr` to use the pattern API methods. ## Motivation [motivation]: #motivation `OsStr` is missing many common string methods compared to the standard `str` or even `[u8]...
RFC 2295
RFC
2018-01-16
~14 min read
github.com
## Summary [summary]: #summary Allow `if let` guards in `match` expressions. ## Motivation [motivation]: #motivation This feature would greatly simplify some logic where we must match a pattern iff some value computed from the `match`-bound...
RFC 2294
RFC
2018-01-15
~5 min read
github.com
## Summary [summary]: #summary Introduce the bound form `MyTrait<AssociatedType: Bounds>`, permitted anywhere a bound of the form `MyTrait<AssociatedType = T>` would be allowed. The bound `T: Trait<AssociatedType: Bounds>` desugars to the b...
RFC 2289
RFC
2018-01-13
~5 min read
github.com
## Summary [summary]: #summary Allow `let` bindings in the body of constants and const fns. Additionally enable destructuring in `let` bindings and const fn arguments. ## Motivation [motivation]: #motivation It makes writing const fns much...
RFC 2341
RFC
2018-01-11
~1 min read
github.com
## Summary [summary]: #summary Enable `if` and `match` during const evaluation and make them evaluate lazily. In short, this will allow `if x < y { y - x } else { x - y }` even though the else branch would emit an overflow error for unsigne...
RFC 2342
RFC
2018-01-11
~3 min read
github.com
## Summary [summary]: #summary Allow overriding profile keys for certain dependencies, as well as providing a way to set profiles in `.cargo/config` ## Motivation [motivation]: #motivation Currently the "stable" way to tweak build parameter...
RFC 2282
RFC
2018-01-08
~4 min read
github.com
FFI bindings to libudev
Crate
v0.1.4
2018-01-07
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
Rust bindings for system ioctls.
Crate
v0.2.0
2017-12-04
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