1
Fork 0

Unify inherent impl blocks by wrapping them into a div

This commit is contained in:
Guillaume Gomez 2022-03-08 17:40:24 +01:00
parent a64180f67f
commit a5216cf67d
4 changed files with 13 additions and 8 deletions

View file

@ -1460,6 +1460,7 @@ fn init_id_map() -> FxHashMap<String, usize> {
map.insert("provided-methods".to_owned(), 1); map.insert("provided-methods".to_owned(), 1);
map.insert("implementors".to_owned(), 1); map.insert("implementors".to_owned(), 1);
map.insert("synthetic-implementors".to_owned(), 1); map.insert("synthetic-implementors".to_owned(), 1);
map.insert("implementations-list".to_owned(), 1);
map.insert("trait-implementations-list".to_owned(), 1); map.insert("trait-implementations-list".to_owned(), 1);
map.insert("synthetic-implementations-list".to_owned(), 1); map.insert("synthetic-implementations-list".to_owned(), 1);
map.insert("blanket-implementations-list".to_owned(), 1); map.insert("blanket-implementations-list".to_owned(), 1);

View file

@ -1065,14 +1065,15 @@ fn render_assoc_items_inner(
let (non_trait, traits): (Vec<_>, _) = v.iter().partition(|i| i.inner_impl().trait_.is_none()); let (non_trait, traits): (Vec<_>, _) = v.iter().partition(|i| i.inner_impl().trait_.is_none());
if !non_trait.is_empty() { if !non_trait.is_empty() {
let mut tmp_buf = Buffer::empty_from(w); let mut tmp_buf = Buffer::empty_from(w);
let render_mode = match what { let (render_mode, id) = match what {
AssocItemRender::All => { AssocItemRender::All => {
tmp_buf.write_str( tmp_buf.write_str(
"<h2 id=\"implementations\" class=\"small-section-header\">\ "<h2 id=\"implementations\" class=\"small-section-header\">\
Implementations<a href=\"#implementations\" class=\"anchor\"></a>\ Implementations\
<a href=\"#implementations\" class=\"anchor\"></a>\
</h2>", </h2>",
); );
RenderMode::Normal (RenderMode::Normal, "implementations-list".to_owned())
} }
AssocItemRender::DerefFor { trait_, type_, deref_mut_ } => { AssocItemRender::DerefFor { trait_, type_, deref_mut_ } => {
let id = let id =
@ -1090,7 +1091,7 @@ fn render_assoc_items_inner(
trait_ = trait_.print(cx), trait_ = trait_.print(cx),
type_ = type_.print(cx), type_ = type_.print(cx),
); );
RenderMode::ForDeref { mut_: deref_mut_ } (RenderMode::ForDeref { mut_: deref_mut_ }, cx.derive_id(id))
} }
}; };
let mut impls_buf = Buffer::empty_from(w); let mut impls_buf = Buffer::empty_from(w);
@ -1115,7 +1116,9 @@ fn render_assoc_items_inner(
} }
if !impls_buf.is_empty() { if !impls_buf.is_empty() {
w.push_buffer(tmp_buf); w.push_buffer(tmp_buf);
write!(w, "<div id=\"{}\">", id);
w.push_buffer(impls_buf); w.push_buffer(impls_buf);
w.write_str("</div>");
} }
} }
@ -1146,7 +1149,8 @@ fn render_assoc_items_inner(
write!( write!(
w, w,
"<h2 id=\"trait-implementations\" class=\"small-section-header\">\ "<h2 id=\"trait-implementations\" class=\"small-section-header\">\
Trait Implementations<a href=\"#trait-implementations\" class=\"anchor\"></a>\ Trait Implementations\
<a href=\"#trait-implementations\" class=\"anchor\"></a>\
</h2>\ </h2>\
<div id=\"trait-implementations-list\">{}</div>", <div id=\"trait-implementations-list\">{}</div>",
impls impls

View file

@ -741,7 +741,7 @@ function hideThemeButtonState() {
} else { } else {
addClass(innerToggle, "will-expand"); addClass(innerToggle, "will-expand");
onEachLazy(document.getElementsByClassName("rustdoc-toggle"), function(e) { onEachLazy(document.getElementsByClassName("rustdoc-toggle"), function(e) {
if (e.parentNode.id !== MAIN_ID || if (e.parentNode.id !== "implementations-list" ||
(!hasClass(e, "implementors-toggle") && (!hasClass(e, "implementors-toggle") &&
!hasClass(e, "type-contents-toggle"))) !hasClass(e, "type-contents-toggle")))
{ {

View file

@ -2,7 +2,7 @@
// @has - '//h3[@class="code-header in-band"]' 'impl Foo' // @has - '//h3[@class="code-header in-band"]' 'impl Foo'
// @has - '//h3[@class="code-header in-band"]' 'impl Bar for Foo' // @has - '//h3[@class="code-header in-band"]' 'impl Bar for Foo'
// @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1 // @count - '//*[@id="trait-implementations-list"]//*[@class="impl has-srclink"]' 1
// @count - '//*[@id="main-content"]/details/summary/*[@class="impl has-srclink"]' 1 // @count - '//*[@id="main-content"]/div[@id="implementations-list"]/details/summary/*[@class="impl has-srclink"]' 1
// @has issue_33054/impls/bar/trait.Bar.html // @has issue_33054/impls/bar/trait.Bar.html
// @has - '//h3[@class="code-header in-band"]' 'impl Bar for Foo' // @has - '//h3[@class="code-header in-band"]' 'impl Bar for Foo'
// @count - '//*[@class="struct"]' 1 // @count - '//*[@class="struct"]' 1