Skip to content

Commit b56cec0

Browse files
Add version display for associated consts
1 parent 748d354 commit b56cec0

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

src/librustdoc/html/render.rs

+32-8
Original file line numberDiff line numberDiff line change
@@ -3237,13 +3237,14 @@ fn assoc_type<W: fmt::Write>(w: &mut W, it: &clean::Item,
32373237
Ok(())
32383238
}
32393239

3240-
fn render_stability_since_raw<'a>(w: &mut fmt::Formatter,
3241-
ver: Option<&'a str>,
3242-
containing_ver: Option<&'a str>) -> fmt::Result {
3240+
fn render_stability_since_raw<'a, T: fmt::Write>(
3241+
w: &mut T,
3242+
ver: Option<&'a str>,
3243+
containing_ver: Option<&'a str>,
3244+
) -> fmt::Result {
32433245
if let Some(v) = ver {
32443246
if containing_ver != ver && v.len() > 0 {
3245-
write!(w, "<div class='since' title='Stable since Rust version {0}'>{0}</div>",
3246-
v)?
3247+
write!(w, "<div class='since' title='Stable since Rust version {0}'>{0}</div>", v)?
32473248
}
32483249
}
32493250
Ok(())
@@ -4067,21 +4068,44 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi
40674068
write!(w, "<h4 id='{}' class=\"{}{}\">", id, item_type, extra_class)?;
40684069
write!(w, "<span id='{}' class='invisible'><code>", ns_id)?;
40694070
assoc_type(w, item, &Vec::new(), Some(&tydef.type_), link.anchor(&id))?;
4070-
write!(w, "</code></span></h4>\n")?;
4071+
write!(w, "</code></span></h4>")?;
40714072
}
40724073
clean::AssociatedConstItem(ref ty, ref default) => {
4074+
let mut version = String::new();
4075+
4076+
render_stability_since_raw(&mut version, item.stable_since(), outer_version)?;
4077+
40734078
let id = cx.derive_id(format!("{}.{}", item_type, name));
40744079
let ns_id = cx.derive_id(format!("{}.{}", name, item_type.name_space()));
40754080
write!(w, "<h4 id='{}' class=\"{}{}\">", id, item_type, extra_class)?;
4076-
write!(w, "<span id='{}' class='invisible'><code>", ns_id)?;
4081+
write!(w, "<span id='{}' class='invisible'>", ns_id)?;
4082+
if !version.is_empty() {
4083+
write!(w, "<table class='table-display'><tbody><tr><td><code>")?;
4084+
} else {
4085+
write!(w, "<code>")?;
4086+
}
40774087
assoc_const(w, item, ty, default.as_ref(), link.anchor(&id))?;
4088+
if !version.is_empty() {
4089+
write!(w, "</code>")?;
4090+
}
40784091
let src = if let Some(l) = (Item { cx, item }).src_href() {
4092+
if !version.is_empty() {
4093+
write!(w, "</span></td><td><span class='out-of-band'>")?;
4094+
write!(w, "<div class='ghost'></div>{}", version)?;
4095+
}
40794096
format!("<a class='srclink' href='{}' title='{}'>[src]</a>",
40804097
l, "goto source code")
40814098
} else {
4099+
if !version.is_empty() {
4100+
write!(w, "</td><td>{}", version)?;
4101+
}
40824102
String::new()
40834103
};
4084-
write!(w, "</code>{}</span></h4>\n", src)?;
4104+
if version.is_empty() {
4105+
write!(w, "</code>{}</span></h4>", src)?;
4106+
} else {
4107+
write!(w, "{}</td></tr></tbody></table></span></h4>", src)?;
4108+
}
40854109
}
40864110
clean::AssociatedTypeItem(ref bounds, ref default) => {
40874111
let id = cx.derive_id(format!("{}.{}", item_type, name));

0 commit comments

Comments
 (0)