]> git.lizzy.rs Git - rust.git/blob - example/std_example.rs
[WIP]
[rust.git] / example / std_example.rs
1 #![feature(core_intrinsics)]
2
3 use std::io::Write;
4 use std::intrinsics;
5
6 fn checked_div_i128(lhs: i128, rhs: i128) -> Option<i128> {
7     if rhs == 0 || (lhs == -170141183460469231731687303715884105728 && rhs == -1) {
8         None
9     } else {
10         Some(unsafe { intrinsics::unchecked_div(lhs, rhs) })
11     }
12 }
13
14 fn checked_div_u128(lhs: u128, rhs: u128) -> Option<u128> {
15     match rhs {
16         0 => None,
17         rhs => Some(unsafe { intrinsics::unchecked_div(lhs, rhs) })
18     }
19 }
20
21 fn main() {
22     checked_div_i128(0i128, 2i128);
23     checked_div_u128(0u128, 2u128);
24     assert_eq!(1u128 + 2, 3);
25 }