Skip to content

Commit ca02fde

Browse files
committed
Expand render_field()
1 parent 4833758 commit ca02fde

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
@@ -1873,7 +1873,7 @@ fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean
18731873
document_non_exhaustive(self.it)
18741874
}
18751875

1876-
fn render_field<'b>(
1876+
fn render_field_in_span<'b>(
18771877
&'b self,
18781878
index: &'b usize,
18791879
field: &'b clean::Item,
@@ -1884,16 +1884,24 @@ fn item_struct(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, s: &clean
18841884
let field_name =
18851885
field.name.map_or_else(|| index.to_string(), |sym| sym.as_str().to_string());
18861886
let id = cx.derive_id(format!("{}.{}", ItemType::StructField, field_name));
1887+
let ty = ty.print(*cx);
18871888
write!(
18881889
f,
18891890
"<span id=\"{id}\" class=\"{item_type} small-section-header\">\
18901891
<a href=\"#{id}\" class=\"anchor field\">§</a>\
18911892
<code>{field_name}: {ty}</code>\
18921893
</span>",
1893-
ty = ty.print(*cx),
18941894
item_type = ItemType::StructField,
1895-
)?;
1895+
)
1896+
})
1897+
}
18961898

1899+
fn document_field<'b>(
1900+
&'b self,
1901+
field: &'b clean::Item,
1902+
) -> impl fmt::Display + Captures<'a> + 'b + Captures<'cx> {
1903+
display_fn(move |f| {
1904+
let mut cx = self.cx.borrow_mut();
18971905
let v = document(*cx, field, Some(self.it), HeadingOffset::H3);
18981906
write!(f, "{v}")
18991907
})

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)