Skip to content

Commit 22608de

Browse files
committed
---
yaml --- r: 56430 b: refs/heads/auto c: 225ac21 h: refs/heads/master v: v3
1 parent e026cce commit 22608de

File tree

2 files changed

+23
-21
lines changed

2 files changed

+23
-21
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 48c24188f9191888110ebea2bc5193de9a0b26d5
17+
refs/heads/auto: 225ac216157cf530332cef1c926875e2023e48e6
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1919
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c

branches/auto/src/libstd/num/rational.rs

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -204,20 +204,6 @@ impl<T: Copy + Num + Ord>
204204
/* Utils */
205205
impl<T: Copy + Num + Ord>
206206
Round for Ratio<T> {
207-
fn round(&self, mode: num::RoundMode) -> Ratio<T> {
208-
match mode {
209-
num::RoundUp => { self.ceil() }
210-
num::RoundDown => { self.floor()}
211-
num::RoundToZero => { Ratio::from_integer(self.numer / self.denom) }
212-
num::RoundFromZero => {
213-
if *self < Zero::zero() {
214-
Ratio::from_integer((self.numer - self.denom + One::one()) / self.denom)
215-
} else {
216-
Ratio::from_integer((self.numer + self.denom - One::one()) / self.denom)
217-
}
218-
}
219-
}
220-
}
221207
222208
fn floor(&self) -> Ratio<T> {
223209
if *self < Zero::zero() {
@@ -226,13 +212,29 @@ impl<T: Copy + Num + Ord>
226212
Ratio::from_integer(self.numer / self.denom)
227213
}
228214
}
215+
229216
fn ceil(&self) -> Ratio<T> {
230217
if *self < Zero::zero() {
231218
Ratio::from_integer(self.numer / self.denom)
232219
} else {
233220
Ratio::from_integer((self.numer + self.denom - One::one()) / self.denom)
234221
}
235222
}
223+
224+
#[inline(always)]
225+
fn round(&self) -> Ratio<T> {
226+
if *self < Zero::zero() {
227+
Ratio::from_integer((self.numer - self.denom + One::one()) / self.denom)
228+
} else {
229+
Ratio::from_integer((self.numer + self.denom - One::one()) / self.denom)
230+
}
231+
}
232+
233+
#[inline(always)]
234+
fn trunc(&self) -> Ratio<T> {
235+
Ratio::from_integer(self.numer / self.denom)
236+
}
237+
236238
fn fract(&self) -> Ratio<T> {
237239
Ratio::new_raw(self.numer % self.denom, self.denom)
238240
}
@@ -421,18 +423,18 @@ mod test {
421423
fn test_round() {
422424
assert_eq!(_1_2.ceil(), _1);
423425
assert_eq!(_1_2.floor(), _0);
424-
assert_eq!(_1_2.round(num::RoundToZero), _0);
425-
assert_eq!(_1_2.round(num::RoundFromZero), _1);
426+
assert_eq!(_1_2.round(), _1);
427+
assert_eq!(_1_2.trunc(), _0);
426428
427429
assert_eq!(_neg1_2.ceil(), _0);
428430
assert_eq!(_neg1_2.floor(), -_1);
429-
assert_eq!(_neg1_2.round(num::RoundToZero), _0);
430-
assert_eq!(_neg1_2.round(num::RoundFromZero), -_1);
431+
assert_eq!(_neg1_2.round(), -_1);
432+
assert_eq!(_neg1_2.trunc(), _0);
431433
432434
assert_eq!(_1.ceil(), _1);
433435
assert_eq!(_1.floor(), _1);
434-
assert_eq!(_1.round(num::RoundToZero), _1);
435-
assert_eq!(_1.round(num::RoundFromZero), _1);
436+
assert_eq!(_1.round(), _1);
437+
assert_eq!(_1.trunc(), _1);
436438
}
437439
438440
#[test]

0 commit comments

Comments
 (0)