@@ -714,7 +714,9 @@ fn render_impls(
714714 None ,
715715 false ,
716716 true ,
717+ true ,
717718 & [ ] ,
719+ true ,
718720 ) ;
719721 buffer. into_inner ( )
720722 } )
@@ -1053,7 +1055,9 @@ fn render_assoc_items(
10531055 None ,
10541056 false ,
10551057 true ,
1058+ true ,
10561059 & [ ] ,
1060+ true ,
10571061 ) ;
10581062 }
10591063 }
@@ -1254,9 +1258,12 @@ fn render_impl(
12541258 use_absolute : Option < bool > ,
12551259 is_on_foreign_type : bool ,
12561260 show_default_items : bool ,
1261+ // It'll exclude methods.
1262+ show_non_assoc_items : bool ,
12571263 // This argument is used to reference same type with different paths to avoid duplication
12581264 // in documentation pages for trait with automatic implementations like "Send" and "Sync".
12591265 aliases : & [ String ] ,
1266+ toggle_open_by_default : bool ,
12601267) {
12611268 let cache = cx. cache ( ) ;
12621269 let traits = & cache. traits ;
@@ -1280,16 +1287,18 @@ fn render_impl(
12801287 is_default_item : bool ,
12811288 trait_ : Option < & clean:: Trait > ,
12821289 show_def_docs : bool ,
1290+ show_non_assoc_items : bool ,
12831291 ) {
12841292 let item_type = item. type_ ( ) ;
12851293 let name = item. name . as_ref ( ) . unwrap ( ) ;
12861294
1287- let render_method_item = match render_mode {
1288- RenderMode :: Normal => true ,
1289- RenderMode :: ForDeref { mut_ : deref_mut_ } => {
1290- should_render_item ( & item, deref_mut_, cx. cache ( ) )
1291- }
1292- } ;
1295+ let render_method_item = show_non_assoc_items
1296+ && match render_mode {
1297+ RenderMode :: Normal => true ,
1298+ RenderMode :: ForDeref { mut_ : deref_mut_ } => {
1299+ should_render_item ( & item, deref_mut_, cx. cache ( ) )
1300+ }
1301+ } ;
12931302
12941303 let in_trait_class = if trait_. is_some ( ) { " trait-impl" } else { "" } ;
12951304
@@ -1456,6 +1465,7 @@ fn render_impl(
14561465 false ,
14571466 trait_. map ( |t| & t. trait_ ) ,
14581467 show_def_docs,
1468+ show_non_assoc_items,
14591469 ) ;
14601470 }
14611471
@@ -1469,6 +1479,7 @@ fn render_impl(
14691479 containing_item : & clean:: Item ,
14701480 render_mode : RenderMode ,
14711481 show_def_docs : bool ,
1482+ show_non_assoc_items : bool ,
14721483 ) {
14731484 for trait_item in & t. items {
14741485 let n = trait_item. name ;
@@ -1491,6 +1502,7 @@ fn render_impl(
14911502 true ,
14921503 Some ( t) ,
14931504 show_def_docs,
1505+ show_non_assoc_items,
14941506 ) ;
14951507 }
14961508 }
@@ -1511,14 +1523,19 @@ fn render_impl(
15111523 parent,
15121524 render_mode,
15131525 show_def_docs,
1526+ show_non_assoc_items,
15141527 ) ;
15151528 }
15161529 }
15171530 if render_mode == RenderMode :: Normal {
15181531 let toggled = !( impl_items. is_empty ( ) && default_impl_items. is_empty ( ) ) ;
15191532 if toggled {
15201533 close_tags. insert_str ( 0 , "</details>" ) ;
1521- write ! ( w, "<details class=\" rustdoc-toggle implementors-toggle\" open>" ) ;
1534+ write ! (
1535+ w,
1536+ "<details class=\" rustdoc-toggle implementors-toggle\" {}>" ,
1537+ if toggle_open_by_default { " open" } else { "" }
1538+ ) ;
15221539 write ! ( w, "<summary>" )
15231540 }
15241541 render_impl_summary (
0 commit comments