@@ -1081,6 +1081,20 @@ fn item_struct(w: &mut io::Writer, it: &clean::Item, s: &clean::Struct) {
1081
1081
write ! ( w, "</pre>" ) ;
1082
1082
1083
1083
document ( w, it) ;
1084
+ match s. struct_type {
1085
+ doctree:: Plain => {
1086
+ write ! ( w, "<h2 class='fields'>Fields</h2>\n <table>" ) ;
1087
+ for field in s. fields . iter ( ) {
1088
+ write ! ( w, "<tr><td id='structfield.{name}'>\
1089
+ <code>{name}</code></td><td>",
1090
+ name = field. name. get_ref( ) . as_slice( ) ) ;
1091
+ document ( w, field) ;
1092
+ write ! ( w, "</td></tr>" ) ;
1093
+ }
1094
+ write ! ( w, "</table>" ) ;
1095
+ }
1096
+ _ => { }
1097
+ }
1084
1098
render_methods ( w, it) ;
1085
1099
}
1086
1100
@@ -1094,36 +1108,46 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) {
1094
1108
} else {
1095
1109
write ! ( w, " \\ {\n " ) ;
1096
1110
for v in e. variants . iter ( ) {
1097
- let name = format ! ( "<a name='variant.{0}'>{0}</a>" ,
1098
- v. name. get_ref( ) . as_slice( ) ) ;
1111
+ write ! ( w , " " ) ;
1112
+ let name = v. name . get_ref ( ) . as_slice ( ) ;
1099
1113
match v. inner {
1100
1114
clean:: VariantItem ( ref var) => {
1101
1115
match var. kind {
1102
- clean:: CLikeVariant => write ! ( w, " {}, \n " , name) ,
1116
+ clean:: CLikeVariant => write ! ( w, "{} " , name) ,
1103
1117
clean:: TupleVariant ( ref tys) => {
1104
- write ! ( w, " {}(" , name) ;
1118
+ write ! ( w, "{}(" , name) ;
1105
1119
for ( i, ty) in tys. iter ( ) . enumerate ( ) {
1106
1120
if i > 0 { write ! ( w, ", " ) }
1107
1121
write ! ( w, "{}" , * ty) ;
1108
1122
}
1109
- write ! ( w, "), \n " ) ;
1123
+ write ! ( w, ")" ) ;
1110
1124
}
1111
1125
clean:: StructVariant ( ref s) => {
1112
- write ! ( w, " " ) ;
1113
1126
render_struct ( w, v, None , s. struct_type , s. fields ,
1114
1127
" " , false ) ;
1115
- write ! ( w, ",\n " ) ;
1116
1128
}
1117
1129
}
1118
1130
}
1119
1131
_ => unreachable ! ( )
1120
1132
}
1133
+ write ! ( w, ",\n " ) ;
1121
1134
}
1122
1135
write ! ( w, "\\ }" ) ;
1123
1136
}
1124
1137
write ! ( w, "</pre>" ) ;
1125
1138
1126
1139
document ( w, it) ;
1140
+ if e. variants . len ( ) > 0 {
1141
+ write ! ( w, "<h2 class='variants'>Variants</h2>\n <table>" ) ;
1142
+ for variant in e. variants . iter ( ) {
1143
+ write ! ( w, "<tr><td id='variant.{name}'><code>{name}</code></td><td>" ,
1144
+ name = variant. name. get_ref( ) . as_slice( ) ) ;
1145
+ document ( w, variant) ;
1146
+ write ! ( w, "</td></tr>" ) ;
1147
+ }
1148
+ write ! ( w, "</table>" ) ;
1149
+
1150
+ }
1127
1151
render_methods ( w, it) ;
1128
1152
}
1129
1153
@@ -1147,12 +1171,11 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item,
1147
1171
for field in fields. iter ( ) {
1148
1172
match field. inner {
1149
1173
clean:: StructFieldItem ( ref ty) => {
1150
- write ! ( w, " {}<a name='structfield.{name}'>{name}</a>: \
1151
- {},\n {}",
1174
+ write ! ( w, " {}{}: {},\n {}" ,
1152
1175
VisSpace ( field. visibility) ,
1176
+ field. name. get_ref( ) . as_slice( ) ,
1153
1177
ty. type_,
1154
- tab,
1155
- name = field. name. get_ref( ) . as_slice( ) ) ;
1178
+ tab) ;
1156
1179
}
1157
1180
_ => unreachable ! ( )
1158
1181
}
0 commit comments