Skip to content

Commit d81196c

Browse files
committed
manual: improve description of traits.
1 parent 9cba4af commit d81196c

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

doc/rust.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,9 +1157,14 @@ The definition expression of a constant is limited to expression forms that can
11571157

11581158
### Traits
11591159

1160-
A _trait item_ describes a set of method types. [_implementation
1161-
items_](#implementations) can be used to provide implementations of
1162-
those methods for a specific type.
1160+
A _trait_ describes a set of method types.
1161+
1162+
Traits can include default implementations of methods,
1163+
written in terms of some unknown [`self` type](#self-types);
1164+
the `self` type may either be completely unspecified,
1165+
or constrained by some other [trait type](#trait-types).
1166+
1167+
Traits are implemented for specific types through separate [implementations](#implementations).
11631168

11641169
~~~~
11651170
# type surface = int;
@@ -1171,10 +1176,9 @@ trait shape {
11711176
}
11721177
~~~~
11731178

1174-
This defines a trait with two methods. All values that have
1175-
[implementations](#implementations) of this trait in scope can
1176-
have their `draw` and `bounding_box` methods called, using
1177-
`value.bounding_box()` [syntax](#field-expressions).
1179+
This defines a trait with two methods.
1180+
All values that have [implementations](#implementations) of this trait in scope can have their `draw` and `bounding_box` methods called,
1181+
using `value.bounding_box()` [syntax](#field-expressions).
11781182

11791183
Type parameters can be specified for a trait to make it generic.
11801184
These appear after the name, using the same syntax used in [generic

0 commit comments

Comments
 (0)