Skip to content

Commit e35b8fc

Browse files
authored
Merge pull request #2059 from integer32llc/reorder-sections
"Guide-level" and "Reference-level" explanations to replace how we teach and detailed design sections
2 parents 813235c + 117f9b9 commit e35b8fc

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

0000-template.md

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,45 @@ One para explanation of the feature.
1313

1414
Why are we doing this? What use cases does it support? What is the expected outcome?
1515

16-
# Detailed design
17-
[design]: #detailed-design
16+
# Guide-level explanation
17+
[guide-level-explanation]: #guide-level-explanation
1818

19-
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:
2220

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.
2526

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.
2828

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?
29+
# Reference-level explanation
30+
[reference-level-explanation]: #reference-level-explanation
3131

32-
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:
3333

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.
3537

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.
3739

3840
# Drawbacks
3941
[drawbacks]: #drawbacks
4042

4143
Why should we *not* do this?
4244

43-
# Alternatives
45+
# Rationale and Alternatives
4446
[alternatives]: #alternatives
4547

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?
4751

4852
# Unresolved questions
4953
[unresolved]: #unresolved-questions
5054

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

Comments
 (0)