File tree Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Original file line number Diff line number Diff line change @@ -1020,11 +1020,23 @@ pub struct Impl {
10201020 generics : Generics ,
10211021 trait_ : Option < Type > ,
10221022 for_ : Type ,
1023- methods : Vec < Item > ,
1023+ methods : Vec < Item > ,
1024+ derived : bool ,
10241025}
10251026
10261027impl Clean < Item > for doctree:: Impl {
10271028 fn clean ( & self ) -> Item {
1029+ let mut derived = false ;
1030+ for attr in self . attrs . iter ( ) {
1031+ match attr. node . value . node {
1032+ ast:: MetaWord ( ref s) => {
1033+ if s. get ( ) == "automatically_derived" {
1034+ derived = true ;
1035+ }
1036+ }
1037+ _ => { }
1038+ }
1039+ }
10281040 Item {
10291041 name : None ,
10301042 attrs : self . attrs . clean ( ) ,
@@ -1036,6 +1048,7 @@ impl Clean<Item> for doctree::Impl {
10361048 trait_ : self . trait_ . clean ( ) ,
10371049 for_ : self . for_ . clean ( ) ,
10381050 methods : self . methods . clean ( ) ,
1051+ derived : derived,
10391052 } ) ,
10401053 }
10411054 }
Original file line number Diff line number Diff line change @@ -1517,8 +1517,22 @@ fn render_methods(w: &mut Writer, it: &clean::Item) -> fmt::Result {
15171517 if traits. len ( ) > 0 {
15181518 try!( write ! ( w, "<h2 id='implementations'>Trait \
15191519 Implementations</h2>") ) ;
1520- for & ( ref i, ref dox) in traits. move_iter ( ) {
1521- try!( render_impl ( w, i, dox) ) ;
1520+ let mut any_derived = false ;
1521+ for & & ( ref i, ref dox) in traits. iter ( ) {
1522+ if !i. derived {
1523+ try!( render_impl ( w, i, dox) ) ;
1524+ } else {
1525+ any_derived = true ;
1526+ }
1527+ }
1528+ if any_derived {
1529+ try!( write ! ( w, "<h3 id='derived_implementations'>Derived Implementations \
1530+ </h3>") ) ;
1531+ for & ( ref i, ref dox) in traits. move_iter ( ) {
1532+ if i. derived {
1533+ try!( render_impl ( w, i, dox) ) ;
1534+ }
1535+ }
15221536 }
15231537 }
15241538 }
You can’t perform that action at this time.
0 commit comments