use egui::Color32;
pub fn blue_shift_color(c: Color32, dblue: i8) -> Color32 {
let b = if dblue >= 0 {
c.b().saturating_add(dblue as u8)
} else {
c.b().saturating_sub(-dblue as u8)
};
Color32::from_rgba_premultiplied(c.r(), c.g(), b, c.a())
}
pub trait SubsliceOffset {
fn subslice_offset(&self, inner: &Self) -> Option<usize>;
}
impl SubsliceOffset for str {
fn subslice_offset(&self, inner: &str) -> Option<usize> {
let self_beg = self.as_ptr() as usize;
let inner = inner.as_ptr() as usize;
if inner < self_beg || inner > self_beg.wrapping_add(self.len()) {
None
} else {
Some(inner.wrapping_sub(self_beg))
}
}
}