use gtk::gdk::RGBA; use num_traits::Num; pub fn get(levels: &Vec, colors: &Vec, v: T) -> RGBA where T: Num + PartialOrd + Copy, { let len = levels.len(); let mut left = 0; let mut right = len - 1; while left < right - 1 { let middle = (right + left) / 2; if v > levels[middle] { left = middle; } else { right = middle; } } colors[left] }