style-guide: Format single associated type where clauses on the same line

In particular, lifetime-generic associated types often have a
`where Self: 'a` bound, which we can format on the same line.
This commit is contained in:
Josh Triplett 2024-01-02 04:59:24 -08:00
parent abb95639ef
commit 3742a4bd90
2 changed files with 13 additions and 1 deletions

View File

@ -43,6 +43,7 @@ include:
- Miscellaneous `rustfmt` bugfixes.
- Use version-sort (sort `x8`, `x16`, `x32`, `x64`, `x128` in that order).
- Change "ASCIIbetical" sort to Unicode-aware "non-lowercase before lowercase".
- Format single associated type `where` clauses on the same line if they fit.
## Rust 2015/2018/2021 style edition

View File

@ -421,9 +421,20 @@ Format associated types like type aliases. Where an associated type has a
bound, put a space after the colon but not before:
```rust
pub type Foo: Bar;
type Foo: Bar;
```
If an associated type has no `=`, and has a `where` clause with only one entry,
format the entire type declaration including the `where` clause on the same
line if it fits:
```rust
type Item<'a> where Self: 'a;
```
If the associated type has a `=`, or if the `where` clause contains multiple
entries, format it across multiple lines as with a type alias.
## extern items
When writing extern items (such as `extern "C" fn`), always specify the ABI.