File tree 2 files changed +30
-3
lines changed
2 files changed +30
-3
lines changed Original file line number Diff line number Diff line change @@ -1020,11 +1020,23 @@ pub struct Impl {
1020
1020
generics : Generics ,
1021
1021
trait_ : Option < Type > ,
1022
1022
for_ : Type ,
1023
- methods : Vec < Item > ,
1023
+ methods : Vec < Item > ,
1024
+ derived : bool ,
1024
1025
}
1025
1026
1026
1027
impl Clean < Item > for doctree:: Impl {
1027
1028
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
+ }
1028
1040
Item {
1029
1041
name : None ,
1030
1042
attrs : self . attrs . clean ( ) ,
@@ -1036,6 +1048,7 @@ impl Clean<Item> for doctree::Impl {
1036
1048
trait_ : self . trait_ . clean ( ) ,
1037
1049
for_ : self . for_ . clean ( ) ,
1038
1050
methods : self . methods . clean ( ) ,
1051
+ derived : derived,
1039
1052
} ) ,
1040
1053
}
1041
1054
}
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 {
1517
1517
if traits. len ( ) > 0 {
1518
1518
try!( write ! ( w, "<h2 id='implementations'>Trait \
1519
1519
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
+ }
1522
1536
}
1523
1537
}
1524
1538
}
You can’t perform that action at this time.
0 commit comments