You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the bulk of the RFC. Explain the design in enough detail for somebody familiar
20
-
with the language to understand, and for somebody familiar with the compiler to implement.
21
-
This should get into specifics and corner-cases, and include examples of how the feature is used.
19
+
Explain the proposal as if it was already included in the language and you were teaching it to another Rust programmer. That generally means:
22
20
23
-
# How We Teach This
24
-
[how-we-teach-this]: #how-we-teach-this
21
+
- Introducing new named concepts.
22
+
- Explaining the feature largely in terms of examples.
23
+
- Explaining how Rust programmers should *think* about the feature, and how it should impact the way they use Rust. It should explain the impact as concretely as possible.
24
+
- If applicable, provide sample error messages, deprecation warnings, or migration guidance.
25
+
- If applicable, describe the differences between teaching this to existing Rust programmers and new Rust programmers.
25
26
26
-
What names and terminology work best for these concepts and why?
27
-
How is this idea best presented—as a continuation of existing Rust patterns, or as a wholly new one?
27
+
For implementation-oriented RFCs (e.g. for compiler internals), this section should focus on how compiler contributors should think about the change, and give examples of its concrete impact. For policy RFCs, this section should provide an example-driven introduction to the policy, and explain its impact in concrete terms.
28
28
29
-
Would the acceptance of this proposal change how Rust is taught to new users at any level?
30
-
How should this feature be introduced and taught to existing Rust users?
What additions or changes to the Rust Reference, _The Rust Programming Language_, and/or _Rust by Example_ does it entail?
32
+
This is the technical portion of the RFC. Explain the design in sufficient detail that:
33
33
34
-
What would an outline of a new section in the book look like? What should the reader be able to understand by the end of the section in the book?
34
+
- Its interaction with other features is clear.
35
+
- It is reasonably clear how the feature would be implemented.
36
+
- Corner cases are dissected by example.
35
37
36
-
What's an example that would show off this feature?
38
+
The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work.
37
39
38
40
# Drawbacks
39
41
[drawbacks]: #drawbacks
40
42
41
43
Why should we *not* do this?
42
44
43
-
# Alternatives
45
+
# Rationale and Alternatives
44
46
[alternatives]: #alternatives
45
47
46
-
What other designs have been considered? What is the impact of not doing this?
48
+
- Why is this design the best in the space of possible designs?
49
+
- What other designs have been considered and what is the rationale for not choosing them?
50
+
- What is the impact of not doing this?
47
51
48
52
# Unresolved questions
49
53
[unresolved]: #unresolved-questions
50
54
51
-
What parts of the design are still TBD?
55
+
- What parts of the design do you expect to resolve through the RFC process before this gets merged?
56
+
- What parts of the design do you expect to resolve through the implementation of this feature before stabilization?
57
+
- What related issues do you consider out of scope for this RFC tha could be addressed in the future independently of the solution that comes out of this RFC?
0 commit comments