Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
extern crate num;

use self::num::traits::{Num};
use self::num::traits::{One};

pub fn mid<N: Clone+Num>(start: N, end: N) -> N {
    let one1:N = One::one();
    let one2:N = One::one();
    let two = one1 + one2;
    // because negatives, we can't do
    // (start + end) / two
    start.clone() + (end - start) / two
}