fn validated<T: PartialEq + Debug>(
id: String,
ui: &mut Ui,
fields: &mut HashMap<String, (String, String)>,
value: &mut T,
text: impl Into<WidgetText>,
validation: fn(_: &str) -> Option<T>,
to_str: fn(_: &T) -> String,
end_row: bool,
)