rfcs
rfcs copied to clipboard
RFCs for changes to Rust
Use custom smart pointers with trait objects. [Rendered](https://github.com/Darksonn/rfcs/blob/derive-smart-pointer/text/3621-derive-smart-pointer.md) Tracking issue: https://github.com/rust-lang/rust/issues/123430 --- Co-authored by @Darksonn and @Veykril Thank you to @compiler-errors for [the original idea](https://rust-lang.zulipchat.com/#narrow/stream/410673-t-lang.2Fmeetings/topic/RfL.20meeting.202024-02-21/near/422701742)
Primitive representations on enums now accept type aliases, meaning that in addition to primitives like `#[repr(u32)]`, `#[repr(tag = core::ffi::c_int)]` and `#[repr(tag = my_type)]` are now accepted. Internals discussion: https://internals.rust-lang.org/t/pre-rfc-type-aliases-in-repr/20956 Last...
[Rendered](https://github.com/tgross35/rfcs/blob/feature-documentation/text/3485-feature-documentation.md) RFC for `feature-documentation` RFC goals: add a way to write feature descriptions in Cargo.toml This was split from https://github.com/rust-lang/rfcs/pull/3416 ```toml [features] # current configuration foo = [] # Add...
Path Inference
This RFC proposes a leading-dot syntax for path inference in type construction and pattern matching. When the expected type is known from context, developers can write `.Variant`, `.Variant { …...
In embedded systems development, there's usually a small maximum binary size. (e.g. 8KiB). The size of core::fmt when compiled into the executable is too big for this. Take a freestanding,...
This RFC proposes optional names for repetition groups in macros: ```rust macro_rules! foo { ( $group1( $a:ident ),+ ) => { $group1( println!("{}", $a); )+ } } ``` [Rendered](https://github.com/tgross35/rfcs/blob/macros-named-capture-groups/text/3649-macros-named-capture-groups.md) Small...
For example, Clang has [`#pragma loop`](http://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-loop-hint-optimizations) which allow the programmer to guide loop unrolling, vectorization, and other optimizations. This is useful in high performance code because heuristics are often fallible...
Currently, the following is a syntax error: ```rust enum MyEnum { StructVariant { a: String, b: u64, }, } fn matcher(e: MyEnum) { match e { MyEnum::StructVariant v@{ .. }...
Enum of named structs is one of usual patterns: ```rust struct Foo {} struct Bar {} enum FooBar { Foo(Foo), Bar(Bar), } ``` Are there any ways to reduce the...
This may be a bit long. I thought it would be best to go over the interactions with other language features and tooling as well as potential impacts thoroughly in...