@@ -99,8 +99,9 @@ macro_rules! integer_sum_product {
99
99
}
100
100
101
101
macro_rules! saturating_integer_sum_product {
102
- ( @impls $zero: expr, $one: expr, #[ $attr: meta] , $( $a: ty) * ) => ( $(
102
+ ( @impls $zero: expr, $one: expr, $doc : expr , #[ $attr: meta] , $( $a: ty) * ) => ( $(
103
103
#[ $attr]
104
+ #[ doc = $doc]
104
105
impl Sum for $a {
105
106
fn sum<I : Iterator <Item =Self >>( iter: I ) -> Self {
106
107
iter. fold(
@@ -112,6 +113,7 @@ macro_rules! saturating_integer_sum_product {
112
113
}
113
114
114
115
#[ $attr]
116
+ #[ doc = $doc]
115
117
impl Product for $a {
116
118
fn product<I : Iterator <Item =Self >>( iter: I ) -> Self {
117
119
iter. fold(
@@ -123,6 +125,7 @@ macro_rules! saturating_integer_sum_product {
123
125
}
124
126
125
127
#[ $attr]
128
+ #[ doc = $doc]
126
129
impl <' a> Sum <& ' a $a> for $a {
127
130
fn sum<I : Iterator <Item =& ' a Self >>( iter: I ) -> Self {
128
131
iter. fold(
@@ -134,6 +137,7 @@ macro_rules! saturating_integer_sum_product {
134
137
}
135
138
136
139
#[ $attr]
140
+ #[ doc = $doc]
137
141
impl <' a> Product <& ' a $a> for $a {
138
142
fn product<I : Iterator <Item =& ' a Self >>( iter: I ) -> Self {
139
143
iter. fold(
@@ -145,8 +149,9 @@ macro_rules! saturating_integer_sum_product {
145
149
}
146
150
) * ) ;
147
151
( $( $a: ty) * ) => (
148
- integer_sum_product!( @impls Saturating ( 0 ) , Saturating ( 1 ) ,
149
- #[ stable( feature = "saturating_iter_arith" , since = "1.14.0" ) ] ,
152
+ saturating_integer_sum_product!( @impls Saturating ( 0 ) , Saturating ( 1 ) ,
153
+ "The short-circuiting behavior of this implementation is unspecified. If you care about short-circuiting, use [`Iterator::fold`] directly." ,
154
+ #[ stable( feature = "saturating_iter_arith" , since = "CURRENT_RUSTC_VERSION" ) ] ,
150
155
$( Saturating <$a>) * ) ;
151
156
) ;
152
157
}
0 commit comments