diff --git a/src/function_manager.rs b/src/function_manager.rs index ef83ddd..c0eb7fe 100644 --- a/src/function_manager.rs +++ b/src/function_manager.rs @@ -1,8 +1,5 @@ use crate::{ - consts::COLORS, - function_entry::FunctionEntry, - misc::{create_id, get_u64_id, random_u64}, - widgets::widgets_ontop, + consts::COLORS, function_entry::FunctionEntry, misc::random_u64, widgets::widgets_ontop, }; use egui::{Button, Id, Key, Modifiers, Popup, TextEdit, WidgetText}; use emath::vec2; @@ -22,7 +19,7 @@ impl Default for FunctionManager { fn default() -> Self { let mut vec: Functions = Vec::with_capacity(COLORS.len()); vec.push(( - create_id(11414819524356497634), // Random number here to avoid call to crate::misc::random_u64() + Id::NULL.with(11414819524356497634_u64), // Random number here to avoid call to crate::misc::random_u64() FunctionEntry::default(), )); Self { functions: vec } @@ -40,8 +37,8 @@ impl Serialize for FunctionManager { &self .functions .iter() - .map(|(id, func)| (get_u64_id(*id), func.clone())) - .collect::>(), + .map(|(id, func)| (*id, func.clone())) + .collect::>(), )?; s.end() } @@ -53,17 +50,12 @@ impl<'de> Deserialize<'de> for FunctionManager { D: Deserializer<'de>, { #[derive(Deserialize)] - struct Helper(Vec<(u64, FunctionEntry)>); + struct Helper(Vec<(Id, FunctionEntry)>); let helper = Helper::deserialize(deserializer)?; Ok(FunctionManager { - functions: helper - .0 - .iter() - .cloned() - .map(|(id, func)| (create_id(id), func)) - .collect::>(), + functions: helper.0.to_vec(), }) } } @@ -204,7 +196,7 @@ impl FunctionManager { const BUTTONS_Y_OFFSET: f32 = 1.32; const Y_OFFSET: f32 = crate::consts::FONT_SIZE * BUTTONS_Y_OFFSET; - widgets_ontop(ui, create_id(i as u64), &re, Y_OFFSET, |ui| { + widgets_ontop(ui, Id::NULL.with(i), &re, Y_OFFSET, |ui| { ui.horizontal(|ui| { // There's more than 1 function! Functions can now be deleted if ui @@ -327,7 +319,7 @@ impl FunctionManager { /// Create and push new empty function entry pub fn push_empty(&mut self) { self.functions.push(( - create_id(random_u64().expect("unable to generate random id")), + Id::NULL.with(random_u64().expect("unable to generate random id")), FunctionEntry::default(), )); } @@ -337,7 +329,7 @@ impl FunctionManager { // Reset settings_opened so the cloned function doesn't have settings open entry.settings_opened = false; self.functions.push(( - create_id(random_u64().expect("unable to generate random id")), + Id::NULL.with(random_u64().expect("unable to generate random id")), entry, )); } diff --git a/src/misc.rs b/src/misc.rs index c784edf..8c39b48 100644 --- a/src/misc.rs +++ b/src/misc.rs @@ -1,4 +1,3 @@ -use egui::Id; use egui_plot::{Line, PlotPoint, PlotPoints, Points}; use emath::Pos2; use itertools::Itertools; @@ -62,14 +61,6 @@ impl Offset for Pos2 { } } -pub const fn create_id(x: u64) -> Id { - unsafe { std::mem::transmute::(x) } -} - -pub const fn get_u64_id(id: Id) -> u64 { - unsafe { std::mem::transmute::(id) } -} - /* /// Rounds f64 to `n` decimal places pub fn decimal_round(x: f64, n: usize) -> f64 {