Auto merge of #26981 - wthrowe:div_docs, r=Gankro
This resolves #26845. I'm not entirely satisfied with the placement of the rounding discussion in the docs for the `Div` and `Rem` traits, but I couldn't come up with anywhere better to put it. Suggestions are welcome. I didn't add any discussion of rounding to the `checked_div` (or rem) or `wrapping_div` documentation because those seem to make it pretty clear that they do the same thing as `Div`.
This commit is contained in:
commit
5f552a5da5
@ -459,7 +459,7 @@ macro_rules! int_impl {
|
||||
}
|
||||
}
|
||||
|
||||
/// Wrapping (modular) division. Computes `floor(self / other)`,
|
||||
/// Wrapping (modular) division. Computes `self / other`,
|
||||
/// wrapping around at the boundary of the type.
|
||||
///
|
||||
/// The only case where such wrapping can occur is when one
|
||||
@ -467,7 +467,7 @@ macro_rules! int_impl {
|
||||
/// negative minimal value for the type); this is equivalent
|
||||
/// to `-MIN`, a positive value that is too large to represent
|
||||
/// in the type. In such a case, this function returns `MIN`
|
||||
/// itself..
|
||||
/// itself.
|
||||
#[stable(feature = "num_wrapping", since = "1.2.0")]
|
||||
#[inline(always)]
|
||||
pub fn wrapping_div(self, rhs: Self) -> Self {
|
||||
@ -1031,7 +1031,7 @@ macro_rules! uint_impl {
|
||||
}
|
||||
}
|
||||
|
||||
/// Wrapping (modular) division. Computes `floor(self / other)`,
|
||||
/// Wrapping (modular) division. Computes `self / other`,
|
||||
/// wrapping around at the boundary of the type.
|
||||
///
|
||||
/// The only case where such wrapping can occur is when one
|
||||
@ -1039,7 +1039,7 @@ macro_rules! uint_impl {
|
||||
/// negative minimal value for the type); this is equivalent
|
||||
/// to `-MIN`, a positive value that is too large to represent
|
||||
/// in the type. In such a case, this function returns `MIN`
|
||||
/// itself..
|
||||
/// itself.
|
||||
#[stable(feature = "num_wrapping", since = "1.2.0")]
|
||||
#[inline(always)]
|
||||
pub fn wrapping_div(self, rhs: Self) -> Self {
|
||||
|
@ -351,7 +351,25 @@ pub trait Div<RHS=Self> {
|
||||
fn div(self, rhs: RHS) -> Self::Output;
|
||||
}
|
||||
|
||||
macro_rules! div_impl {
|
||||
macro_rules! div_impl_integer {
|
||||
($($t:ty)*) => ($(
|
||||
/// This operation rounds towards zero, truncating any
|
||||
/// fractional part of the exact result.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Div for $t {
|
||||
type Output = $t;
|
||||
|
||||
#[inline]
|
||||
fn div(self, other: $t) -> $t { self / other }
|
||||
}
|
||||
|
||||
forward_ref_binop! { impl Div, div for $t, $t }
|
||||
)*)
|
||||
}
|
||||
|
||||
div_impl_integer! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 }
|
||||
|
||||
macro_rules! div_impl_float {
|
||||
($($t:ty)*) => ($(
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Div for $t {
|
||||
@ -365,7 +383,7 @@ macro_rules! div_impl {
|
||||
)*)
|
||||
}
|
||||
|
||||
div_impl! { usize u8 u16 u32 u64 isize i8 i16 i32 i64 f32 f64 }
|
||||
div_impl_float! { f32 f64 }
|
||||
|
||||
/// The `Rem` trait is used to specify the functionality of `%`.
|
||||
///
|
||||
@ -407,6 +425,8 @@ pub trait Rem<RHS=Self> {
|
||||
|
||||
macro_rules! rem_impl {
|
||||
($($t:ty)*) => ($(
|
||||
/// This operation satisfies `n % d == n - (n / d) * d`. The
|
||||
/// result has the same sign as the left operand.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
impl Rem for $t {
|
||||
type Output = $t;
|
||||
|
Loading…
Reference in New Issue
Block a user