diff options
Diffstat (limited to 'docs/dev/style.md')
-rw-r--r-- | docs/dev/style.md | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/dev/style.md b/docs/dev/style.md index 0c5e2ad33..e2f1b6996 100644 --- a/docs/dev/style.md +++ b/docs/dev/style.md | |||
@@ -267,6 +267,20 @@ Non-local code properties degrade under change, privacy makes invariant local. | |||
267 | Borrowed own data discloses irrelevant details about origin of data. | 267 | Borrowed own data discloses irrelevant details about origin of data. |
268 | Irrelevant (neither right nor wrong) things obscure correctness. | 268 | Irrelevant (neither right nor wrong) things obscure correctness. |
269 | 269 | ||
270 | ## Useless Types | ||
271 | |||
272 | More generally, always prefer types on the left | ||
273 | |||
274 | ```rust | ||
275 | // GOOD BAD | ||
276 | &[T] &Vec<T> | ||
277 | &str &String | ||
278 | Option<&T> &Option<T> | ||
279 | ``` | ||
280 | |||
281 | **Rationale:** types on the left are strictly more general. | ||
282 | Even when generality is not required, consistency is important. | ||
283 | |||
270 | ## Constructors | 284 | ## Constructors |
271 | 285 | ||
272 | Prefer `Default` to zero-argument `new` function | 286 | Prefer `Default` to zero-argument `new` function |