rfcs
rfcs copied to clipboard
RFCs for changes to Rust
# Summary This RFC proposes a way to write the discriminant of an enum when building it "from scratch". This introduces two new library components, an unsafe `set_discriminant` function, and...
This RFC describes an Extended Standard Library (ESL) for Rust. Please see [this document](https://docs.google.com/document/d/1NzuF8QVVi9wcmvmHa1_-hwRLNb9UoxWNbUcdOsqWJyc/edit?usp=sharing) for additional information about fundraising. I’d like to thank Dirkjan Ochtman (@djc), Adolfo Ochagavía (@aochagavia), Alex...
This RFC proposes a mechanism for crates to define default bounds on generics. By specifying these defaults at the crate level we can reduce the need for verbose and repetitive...
when binding to a bindable, `break` in `for` and `while` isn't allowed, this proposal allow it using a `else` - when `break` is not reached, evaluates to value in `else`...
This RFC builds on the work of @rylev and @chriswailes. As [suggested by @tmandry](https://github.com/rust-lang/rfcs/pull/3379#issuecomment-1876158423) I have stripped it down to an MVP that just adds `target_version` (aka `os_version_min` in previous...
Add an unsafe trait Transmutable. If this trait is implemented for a type, it can automatically transmuted into another specified type. For example: ``` struct Data { field1: u32, field2:...
# Summary The addition of `supported-targets` to `Cargo.toml`. This field is an array of `target-triple`/`cfg` specifications that restricts the set of targets which a package supports. Packages must meet the...
Allow annotating functions with `#[must_use = false]` to suppress any warning generated due to its return type being marked as `#[must_use]`. [Pre-RFC on IRLO](https://internals.rust-lang.org/t/pre-rfc-must-use-false/21861) [Rendered](https://github.com/lolbinarycat/rust-rfcs/blob/must_use-false/text/3737-must_use-false.md)
Add `#[repr(_, open)]` on field-less (C-style) enums to allow the enum to contain unknown variants, which enables using the enum directly in FFI. Enums with the `open` modifier cannot be...
This proposal introduces a way to name configuration predicates for easy reuse throughout a crate. ```rust #![cfg_alias(x86_linux = all( any(target_arch = "x86", target_arch = "x86_64"), target_os = "linux" ))] #[cfg(x86_linux)]...