radar-g/src/tree.rs

24 lines
438 B
Rust

use gtk::gdk::RGBA;
use num_traits::Num;
pub fn get<T>(levels: &Vec<T>, colors: &Vec<RGBA>, 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]
}