Factor out render_rightside
This covers rendering of stability_since and the srclink across methods and trait implementations, so their DOM representation is consistent.
This commit is contained in:
parent
593d6d1cb1
commit
5de1391b88
3 changed files with 30 additions and 54 deletions
|
@ -1294,7 +1294,6 @@ fn render_impl(
|
||||||
) {
|
) {
|
||||||
let item_type = item.type_();
|
let item_type = item.type_();
|
||||||
let name = item.name.as_ref().unwrap();
|
let name = item.name.as_ref().unwrap();
|
||||||
let tcx = cx.tcx();
|
|
||||||
|
|
||||||
let render_method_item = match render_mode {
|
let render_method_item = match render_mode {
|
||||||
RenderMode::Normal => true,
|
RenderMode::Normal => true,
|
||||||
|
@ -1363,6 +1362,7 @@ fn render_impl(
|
||||||
"<div id=\"{}\" class=\"{}{} has-srclink\">",
|
"<div id=\"{}\" class=\"{}{} has-srclink\">",
|
||||||
id, item_type, in_trait_class,
|
id, item_type, in_trait_class,
|
||||||
);
|
);
|
||||||
|
render_rightside(w, cx, item, outer_version, outer_const_version);
|
||||||
w.write_str("<code>");
|
w.write_str("<code>");
|
||||||
render_assoc_item(
|
render_assoc_item(
|
||||||
w,
|
w,
|
||||||
|
@ -1372,15 +1372,7 @@ fn render_impl(
|
||||||
cx,
|
cx,
|
||||||
);
|
);
|
||||||
w.write_str("</code>");
|
w.write_str("</code>");
|
||||||
render_stability_since_raw(
|
|
||||||
w,
|
|
||||||
item.stable_since(tcx).as_deref(),
|
|
||||||
item.const_stable_since(tcx).as_deref(),
|
|
||||||
outer_version,
|
|
||||||
outer_const_version,
|
|
||||||
);
|
|
||||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||||
write_srclink(cx, item, w);
|
|
||||||
w.write_str("</div>");
|
w.write_str("</div>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1413,6 +1405,7 @@ fn render_impl(
|
||||||
"<div id=\"{}\" class=\"{}{} has-srclink\"><code>",
|
"<div id=\"{}\" class=\"{}{} has-srclink\"><code>",
|
||||||
id, item_type, in_trait_class
|
id, item_type, in_trait_class
|
||||||
);
|
);
|
||||||
|
render_rightside(w, cx, item, outer_version, outer_const_version);
|
||||||
assoc_const(
|
assoc_const(
|
||||||
w,
|
w,
|
||||||
item,
|
item,
|
||||||
|
@ -1423,15 +1416,7 @@ fn render_impl(
|
||||||
cx,
|
cx,
|
||||||
);
|
);
|
||||||
w.write_str("</code>");
|
w.write_str("</code>");
|
||||||
render_stability_since_raw(
|
|
||||||
w,
|
|
||||||
item.stable_since(tcx).as_deref(),
|
|
||||||
item.const_stable_since(tcx).as_deref(),
|
|
||||||
outer_version,
|
|
||||||
outer_const_version,
|
|
||||||
);
|
|
||||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||||
write_srclink(cx, item, w);
|
|
||||||
w.write_str("</div>");
|
w.write_str("</div>");
|
||||||
}
|
}
|
||||||
clean::AssocTypeItem(ref bounds, ref default) => {
|
clean::AssocTypeItem(ref bounds, ref default) => {
|
||||||
|
@ -1590,6 +1575,28 @@ fn render_impl(
|
||||||
w.write_str(&close_tags);
|
w.write_str(&close_tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn render_rightside(
|
||||||
|
w: &mut Buffer,
|
||||||
|
cx: &Context<'_>,
|
||||||
|
item: &clean::Item,
|
||||||
|
outer_version: Option<&str>,
|
||||||
|
outer_const_version: Option<&str>,
|
||||||
|
) {
|
||||||
|
let tcx = cx.tcx();
|
||||||
|
|
||||||
|
write!(w, "<div class=\"rightside\">");
|
||||||
|
render_stability_since_raw(
|
||||||
|
w,
|
||||||
|
item.stable_since(tcx).as_deref(),
|
||||||
|
item.const_stable_since(tcx).as_deref(),
|
||||||
|
outer_version,
|
||||||
|
outer_const_version,
|
||||||
|
);
|
||||||
|
|
||||||
|
write_srclink(cx, item, w);
|
||||||
|
w.write_str("</div>");
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn render_impl_summary(
|
pub(crate) fn render_impl_summary(
|
||||||
w: &mut Buffer,
|
w: &mut Buffer,
|
||||||
cx: &Context<'_>,
|
cx: &Context<'_>,
|
||||||
|
@ -1604,7 +1611,6 @@ pub(crate) fn render_impl_summary(
|
||||||
// in documentation pages for trait with automatic implementations like "Send" and "Sync".
|
// in documentation pages for trait with automatic implementations like "Send" and "Sync".
|
||||||
aliases: &[String],
|
aliases: &[String],
|
||||||
) {
|
) {
|
||||||
let tcx = cx.tcx();
|
|
||||||
let id = cx.derive_id(match i.inner_impl().trait_ {
|
let id = cx.derive_id(match i.inner_impl().trait_ {
|
||||||
Some(ref t) => {
|
Some(ref t) => {
|
||||||
if is_on_foreign_type {
|
if is_on_foreign_type {
|
||||||
|
@ -1620,13 +1626,11 @@ pub(crate) fn render_impl_summary(
|
||||||
} else {
|
} else {
|
||||||
format!(" data-aliases=\"{}\"", aliases.join(","))
|
format!(" data-aliases=\"{}\"", aliases.join(","))
|
||||||
};
|
};
|
||||||
|
write!(w, "<div id=\"{}\" class=\"impl has-srclink\"{}>", id, aliases);
|
||||||
|
render_rightside(w, cx, &i.impl_item, outer_version, outer_const_version);
|
||||||
|
write!(w, "<code class=\"in-band\">");
|
||||||
|
|
||||||
if let Some(use_absolute) = use_absolute {
|
if let Some(use_absolute) = use_absolute {
|
||||||
write!(
|
|
||||||
w,
|
|
||||||
"<div id=\"{}\" class=\"impl has-srclink\"{}>\
|
|
||||||
<code class=\"in-band\">",
|
|
||||||
id, aliases
|
|
||||||
);
|
|
||||||
write!(w, "{}", i.inner_impl().print(use_absolute, cx));
|
write!(w, "{}", i.inner_impl().print(use_absolute, cx));
|
||||||
if show_def_docs {
|
if show_def_docs {
|
||||||
for it in &i.inner_impl().items {
|
for it in &i.inner_impl().items {
|
||||||
|
@ -1637,28 +1641,11 @@ pub(crate) fn render_impl_summary(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
w.write_str("</code>");
|
|
||||||
} else {
|
} else {
|
||||||
write!(
|
write!(w, "{}", i.inner_impl().print(false, cx));
|
||||||
w,
|
|
||||||
"<div id=\"{}\" class=\"impl has-srclink\"{}>\
|
|
||||||
<code class=\"in-band\">{}</code>",
|
|
||||||
id,
|
|
||||||
aliases,
|
|
||||||
i.inner_impl().print(false, cx)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
write!(w, "</code>");
|
||||||
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id);
|
||||||
write!(w, "<div class=\"rightside\">");
|
|
||||||
render_stability_since_raw(
|
|
||||||
w,
|
|
||||||
i.impl_item.stable_since(tcx).as_deref(),
|
|
||||||
i.impl_item.const_stable_since(tcx).as_deref(),
|
|
||||||
outer_version,
|
|
||||||
outer_const_version,
|
|
||||||
);
|
|
||||||
write_srclink(cx, &i.impl_item, w);
|
|
||||||
w.write_str("</div>"); // end of "rightside"
|
|
||||||
|
|
||||||
let is_trait = i.inner_impl().trait_.is_some();
|
let is_trait = i.inner_impl().trait_.is_some();
|
||||||
if is_trait {
|
if is_trait {
|
||||||
|
|
|
@ -899,9 +899,6 @@ body.blur > :not(#help) {
|
||||||
.since {
|
.since {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-size: initial;
|
font-size: initial;
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.impl-items .since, .impl .since, .methods .since {
|
.impl-items .since, .impl .since, .methods .since {
|
||||||
|
@ -1606,11 +1603,6 @@ details.undocumented[open] > summary::before {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content .impl-items .method, .content .impl-items > .type, .impl-items > .associatedconstant,
|
|
||||||
.impl-items > .associatedtype {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.anchor {
|
.anchor {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
goto: file://|DOC_PATH|/test_docs/struct.Foo.html#method.borrow
|
goto: file://|DOC_PATH|/test_docs/struct.Foo.html#method.borrow
|
||||||
// In the blanket implementations list, "Borrow" is the second one, hence the ":nth(2)".
|
// In the blanket implementations list, "Borrow" is the second one, hence the ":nth(2)".
|
||||||
assert: ("#blanket-implementations-list > details:nth-child(2)", "open", "")
|
assert: ("#blanket-implementations-list > details:nth-child(2)", "open", "")
|
||||||
// Please note the "\" below is needed because otherwise ".borrow" would be interpreted as
|
|
||||||
// a class selector.
|
|
||||||
assert: ("#method\.borrow", {"display": "flex"})
|
|
||||||
// We first check that the impl block is open by default.
|
// We first check that the impl block is open by default.
|
||||||
assert: ("#implementations + details", "open", "")
|
assert: ("#implementations + details", "open", "")
|
||||||
// We collapse it.
|
// We collapse it.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue