File tree Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Expand file tree Collapse file tree 1 file changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -1157,9 +1157,14 @@ The definition expression of a constant is limited to expression forms that can
1157
1157
1158
1158
### Traits
1159
1159
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 ) .
1163
1168
1164
1169
~~~~
1165
1170
# type surface = int;
@@ -1171,10 +1176,9 @@ trait shape {
1171
1176
}
1172
1177
~~~~
1173
1178
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 ) .
1178
1182
1179
1183
Type parameters can be specified for a trait to make it generic.
1180
1184
These appear after the name, using the same syntax used in [ generic
You can’t perform that action at this time.
0 commit comments