Skip to content

Commit 71e5bb8

Browse files
committed
Expand render_field()
1 parent f378ae8 commit 71e5bb8

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/librustdoc/html/render/print_item.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,7 +1651,7 @@ fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean
16511651
document_non_exhaustive(self.it)
16521652
}
16531653

1654-
fn render_field<'b>(
1654+
fn render_field_in_span<'b>(
16551655
&'b self,
16561656
index: &'b usize,
16571657
field: &'b clean::Item,
@@ -1662,16 +1662,24 @@ fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean
16621662
let field_name =
16631663
field.name.map_or_else(|| index.to_string(), |sym| sym.as_str().to_string());
16641664
let id = cx.derive_id(format!("{}.{}", ItemType::StructField, field_name));
1665+
let ty = ty.print(*cx);
16651666
write!(
16661667
f,
16671668
"<span id=\"{id}\" class=\"{item_type} small-section-header\">\
16681669
<a href=\"#{id}\" class=\"anchor field\">§</a>\
16691670
<code>{field_name}: {ty}</code>\
16701671
</span>",
1671-
ty = ty.print(*cx),
16721672
item_type = ItemType::StructField,
1673-
)?;
1673+
)
1674+
})
1675+
}
16741676

1677+
fn document_field<'b>(
1678+
&'b self,
1679+
field: &'b clean::Item,
1680+
) -> impl fmt::Display + Captures<'a> + 'b + Captures<'cx> {
1681+
display_fn(move |f| {
1682+
let mut cx = self.cx.borrow_mut();
16751683
let v = document(*cx, field, Some(self.it), HeadingOffset::H3);
16761684
write!(f, "{v}")
16771685
})

src/librustdoc/html/templates/item_struct.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ <h2 id="fields" class="fields small-section header">
1515
</h2>
1616
{{ self.document_non_exhaustive() | safe }}
1717
{% for (index, (field, ty)) in self.fields().enumerate() %}
18-
{{ self.render_field(index, field, ty) | safe }}
18+
{{ self.render_field_in_span(index, field, ty) | safe }}
19+
{{ self.document_field(field) | safe }}
1920
{% endfor %}
2021
{% endif %}
2122
{{ self.render_assoc_items() | safe }}

0 commit comments

Comments
 (0)