diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2018-11-08 23:59:13 +0100 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2018-12-16 18:40:10 +0100 |
| commit | b56cec03215e8689f02f3839b3d87afbcf260558 (patch) | |
| tree | 826e4f3599c258841e23c3f4f0aed048731cef64 /src | |
| parent | 748d354af3145d4292ea84142f73bb8114e3db12 (diff) | |
| download | rust-b56cec03215e8689f02f3839b3d87afbcf260558.tar.gz rust-b56cec03215e8689f02f3839b3d87afbcf260558.zip | |
Add version display for associated consts
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/render.rs | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index c9f3aa011a1..138d0ebd92b 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -3237,13 +3237,14 @@ fn assoc_type<W: fmt::Write>(w: &mut W, it: &clean::Item, Ok(()) } -fn render_stability_since_raw<'a>(w: &mut fmt::Formatter, - ver: Option<&'a str>, - containing_ver: Option<&'a str>) -> fmt::Result { +fn render_stability_since_raw<'a, T: fmt::Write>( + w: &mut T, + ver: Option<&'a str>, + containing_ver: Option<&'a str>, +) -> fmt::Result { if let Some(v) = ver { if containing_ver != ver && v.len() > 0 { - write!(w, "<div class='since' title='Stable since Rust version {0}'>{0}</div>", - v)? + write!(w, "<div class='since' title='Stable since Rust version {0}'>{0}</div>", v)? } } Ok(()) @@ -4067,21 +4068,44 @@ fn render_impl(w: &mut fmt::Formatter, cx: &Context, i: &Impl, link: AssocItemLi write!(w, "<h4 id='{}' class=\"{}{}\">", id, item_type, extra_class)?; write!(w, "<span id='{}' class='invisible'><code>", ns_id)?; assoc_type(w, item, &Vec::new(), Some(&tydef.type_), link.anchor(&id))?; - write!(w, "</code></span></h4>\n")?; + write!(w, "</code></span></h4>")?; } clean::AssociatedConstItem(ref ty, ref default) => { + let mut version = String::new(); + + render_stability_since_raw(&mut version, item.stable_since(), outer_version)?; + let id = cx.derive_id(format!("{}.{}", item_type, name)); let ns_id = cx.derive_id(format!("{}.{}", name, item_type.name_space())); write!(w, "<h4 id='{}' class=\"{}{}\">", id, item_type, extra_class)?; - write!(w, "<span id='{}' class='invisible'><code>", ns_id)?; + write!(w, "<span id='{}' class='invisible'>", ns_id)?; + if !version.is_empty() { + write!(w, "<table class='table-display'><tbody><tr><td><code>")?; + } else { + write!(w, "<code>")?; + } assoc_const(w, item, ty, default.as_ref(), link.anchor(&id))?; + if !version.is_empty() { + write!(w, "</code>")?; + } let src = if let Some(l) = (Item { cx, item }).src_href() { + if !version.is_empty() { + write!(w, "</span></td><td><span class='out-of-band'>")?; + write!(w, "<div class='ghost'></div>{}", version)?; + } format!("<a class='srclink' href='{}' title='{}'>[src]</a>", l, "goto source code") } else { + if !version.is_empty() { + write!(w, "</td><td>{}", version)?; + } String::new() }; - write!(w, "</code>{}</span></h4>\n", src)?; + if version.is_empty() { + write!(w, "</code>{}</span></h4>", src)?; + } else { + write!(w, "{}</td></tr></tbody></table></span></h4>", src)?; + } } clean::AssociatedTypeItem(ref bounds, ref default) => { let id = cx.derive_id(format!("{}.{}", item_type, name)); |
