#![allow(dead_code)]
#![allow(unused_variables)]
#![allow(unused_mut)]
use crate::ui::immediate::Ui;
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>,
}
impl From<InspectArgsDefault> for InspectArgsStruct {
fn from(default_args: InspectArgsDefault) -> Self {
Self {
header: default_args.header,
indent_children: default_args.indent_children,
}
}
}
pub trait InspectRenderStruct<T> {
fn render(data: &[&T], label: &'static str, ui: &mut Ui, args: &InspectArgsStruct);
fn render_mut(
data: &mut [&mut T],
label: &'static str,
ui: &mut Ui,
args: &InspectArgsStruct,
) -> bool;
}
pub fn same_or_none<T: PartialEq + Clone>(data: &[&T]) -> Option<T> {
if data.is_empty() {
return None;
}
let first = data[0].clone();
for d in data {
if **d != first {
return None;
}
}
Some(first)
}
fn same_or_none_mut<T: PartialEq + Clone>(data: &mut [&mut T]) -> Option<T> {
if data.is_empty() {
return None;
}
let first = data[0].clone();
for d in data {
if **d != first {
return None;
}
}
Some(first)
}