aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2021-02-02 12:41:57 +0000
committerAleksey Kladov <[email protected]>2021-02-02 12:41:57 +0000
commit283c3b0133ec4d3217a29547a45092d6e64e4935 (patch)
tree1c3f2e2cda9b579e70ee6b6c55a89b4428d0170b
parent8720f7f14688257d320de44e1354c62fce1a6bcf (diff)
add useless types to the styleguide
-rw-r--r--docs/dev/style.md14
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.
267Borrowed own data discloses irrelevant details about origin of data. 267Borrowed own data discloses irrelevant details about origin of data.
268Irrelevant (neither right nor wrong) things obscure correctness. 268Irrelevant (neither right nor wrong) things obscure correctness.
269 269
270## Useless Types
271
272More generally, always prefer types on the left
273
274```rust
275// GOOD BAD
276&[T] &Vec<T>
277&str &String
278Option<&T> &Option<T>
279```
280
281**Rationale:** types on the left are strictly more general.
282Even when generality is not required, consistency is important.
283
270## Constructors 284## Constructors
271 285
272Prefer `Default` to zero-argument `new` function 286Prefer `Default` to zero-argument `new` function