ux-dx 0.2.1

3D Graphics Primitives for Angular Rust
Documentation
use crate::ui::immediate::*;

use super::*;

impl<T: InspectRenderDefault<T>> InspectRenderDefault<Option<T>> for Option<T> {
    fn render(data: &[&Option<T>], label: &'static str, ui: &mut Ui, args: &InspectArgsDefault) {
        if data.is_empty() {
            let label = format!("{}: None", label);
            ui.text(label.as_str(), Align::Left, None);
            return;
        }

        let d = data[0];
        match d {
            Some(value) => <T as InspectRenderDefault<T>>::render(&[value], label, ui, args),
            None => {
                let label = format!("{}: None", label);
                ui.text(label.as_str(), Align::Left, None);
            }
        };
    }

    fn render_mut(
        data: &mut [&mut Option<T>],
        label: &'static str,
        ui: &mut Ui,
        args: &InspectArgsDefault,
    ) -> bool {
        if data.is_empty() {
            let label = format!("{}: None", label);
            ui.text(label.as_str(), Align::Left, None);
            return false;
        }

        let d = &mut data[0];
        match d {
            Some(value) => {
                <T as InspectRenderDefault<T>>::render_mut(&mut [value], label, ui, args)
            }
            None => {
                let label = format!("{}: None", label);
                ui.text(label.as_str(), Align::Left, None);
                false
            }
        }
    }
}