pub fn gap(&self) -> Self {
    if self.intervals.len() < 2 {
      let values: Vec<Interval<T>> = vec![];
      Self::new(values)
    } else {
      let mut values: Vec<Interval<T>> = vec![];
      for i in 1usize..self.intervals.len() {
        let left = &self.intervals[i - 1];
        let right = &self.intervals[i];
        let gap = left.gap(right);
        if !gap.is_empty() {
          values.push(gap);
        }
      }
      Self::new(values)
    }
  }
/// In the sorted intervals, return the intervals that are between adjacent intervals as the interval sequence.
///
/// If the number of intervals is less than two, an empty sequence of intervals is returned.
/// If the intervals overlap or touch each other, the intervals are not included in the result element.
/// If all the intervals overlap, an empty interval sequence is returned.
///
/// - return: gap interval sequence
In the sorted intervals, return the intervals that are between adjacent intervals as the interval sequence.
If the number of intervals is less than two, an empty sequence of intervals is returned.
If the intervals overlap or touch each other, the intervals are not included in the result element.
If all the intervals overlap, an empty interval sequence is returned.

gap interval sequence
In the sorted intervals return the intervals that are between adjacent intervals as the interval sequence . If the number of intervals is less than two an empty sequence of intervals is returned . If the intervals overlap or touch each other the intervals are not included in the result element . If all the intervals overlap an empty interval sequence is returned . gap interval sequence
pub fn gap(&self) -> Self {
    if self.intervals.len() < 2 {
      let values: Vec<Interval<T>> = vec![];
      Self::new(values)
    } else {
      let mut values: Vec<Interval<T>> = vec![];
      for i in 1usize..self.intervals.len() {
        let left = &self.intervals[i - 1];
        let right = &self.intervals[i];
        let gap = left.gap(right);
        if !gap.is_empty() {
          values.push(gap);
        }
      }
      Self::new(values)
    }
  }
pub fn gap ( & self ) -> Self { if self . intervals . len ( ) < 2 { let values : Vec < Interval < T > > = vec ! [ ] ; Self :: new ( values ) } else { let mut values : Vec < Interval < T > > = vec ! [ ] ; for i in 1usize .. self . intervals . len ( ) { let left = & self . intervals [ i - 1 ] ; let right = & self . intervals [ i ] ; let gap = left . gap ( right ) ; if ! gap . is_empty ( ) { values . push ( gap ) ; } } Self :: new ( values ) } }
In the sorted intervals, return the intervals that are between adjacent intervals as the interval sequence.
In the sorted intervals return the intervals that are between adjacent intervals as the interval sequence .
&self