mod default;
mod slider;
pub use default::*;
pub use slider::*;
#[derive(Debug, Default)]
pub struct InspectArgsStruct {
pub header: Option<bool>,
pub indent_children: Option<bool>,
}
pub trait InspectRenderStruct<T> {
fn render(data: &[&T], label: &'static str, ui: &imgui::Ui, args: &InspectArgsStruct);
fn render_mut(
data: &mut [&mut T],
label: &'static str,
ui: &imgui::Ui,
args: &InspectArgsStruct,
) -> bool;
}
pub fn get_same_or_none<T: PartialEq + Clone>(data: &[&T]) -> Option<T> {
if data.len() == 0 {
return None;
}
let first = data[0].clone();
for d in data {
if **d != first {
return None;
}
}
Some(first)
}
fn get_same_or_none_mut<T: PartialEq + Clone>(data: &mut [&mut T]) -> Option<T> {
if data.len() == 0 {
return None;
}
let first = data[0].clone();
for d in data {
if **d != first {
return None;
}
}
Some(first)
}