exint 0.1.4

An implementation of generic signed and unsigned integers.
Documentation
Calculates `self` − `rhs` − `borrow` and returns a tuple containing
the difference and the output borrow.

Performs "ternary subtraction" by subtracting both an integer operand and a
borrow-in bit from `self`, and returns an output integer and a borrow-out bit.
This allows chaining together multiple subtractions to create a wider
subtraction, and can be useful for bignum subtraction.

# Examples

Basic usage:

```
# use ::exint::primitive::*;
# ::exint::uint! {
//    9    6    (a = 9 × 2^24 + 6)
// -  5    7    (b = 5 × 2^24 + 7)
// ---------
//    3  MAX    (diff = 3 × 2^24 + 2^24 - 1)

let (a1, a0): (u32, u32) = (9_u32, 6_u32);
let (b1, b0): (u32, u32) = (5_u32, 7_u32);
let borrow0 = false;

let (diff0, borrow1) = a0.borrowing_sub(b0, borrow0);
assert_eq!(borrow1, true);
let (diff1, borrow2) = a1.borrowing_sub(b1, borrow1);
assert_eq!(borrow2, false);

assert_eq!((diff1, diff0), (3_u32, u32::MAX));
# }
```