pub fn to_ranges<I: IntoIterator<Item = u32>>(it: I) -> Vec<(u32, u32)> {
    let mut codepoints: Vec<u32> = it.into_iter().collect();
    codepoints.sort();
    codepoints.dedup();

    let mut ranges = vec![];
    for cp in codepoints {
        range_add(&mut ranges, cp);
    }
    ranges
}
/// Convert an iterator of codepoints into a vec of sorted ranges.
Convert an iterator of codepoints into a vec of sorted ranges.
Convert an iterator of codepoints into a vec of sorted ranges .
pub fn to_ranges<I: IntoIterator<Item = u32>>(it: I) -> Vec<(u32, u32)> {
    let mut codepoints: Vec<u32> = it.into_iter().collect();
    codepoints.sort();
    codepoints.dedup();
    let mut ranges = vec![];
    for cp in codepoints {
        range_add(&mut ranges, cp);
    }
    ranges
}
pub fn to_ranges < I : IntoIterator < Item = u32 > > ( it : I ) -> Vec < ( u32 , u32 ) > { let mut codepoints : Vec < u32 > = it . into_iter ( ) . collect ( ) ; codepoints . sort ( ) ; codepoints . dedup ( ) ; let mut ranges = vec ! [ ] ; for cp in codepoints { range_add ( & mut ranges , cp ) ; } ranges }
Convert an iterator of codepoints into a vec of sorted ranges.
Convert an iterator of codepoints into a vec of sorted ranges .
it
I
it
I