misc: use lifetimes for EguiHelper

This commit is contained in:
Simon Gardling 2025-12-03 16:25:27 -05:00
parent 4a4bce90d0
commit 74813f5f13
Signed by: titaniumtown
GPG Key ID: 9AB28AC10ECE533D

View File

@ -1,4 +1,4 @@
use base64::{Engine as _, engine::general_purpose}; use base64::{engine::general_purpose, Engine as _};
use egui_plot::{Line, PlotPoint, PlotPoints, Points}; use egui_plot::{Line, PlotPoint, PlotPoints, Points};
use emath::Pos2; use emath::Pos2;
use getrandom::getrandom; use getrandom::getrandom;
@ -8,13 +8,13 @@ use parsing::FlatExWrapper;
/// Implements traits that are useful when dealing with Vectors of egui's `Value` /// Implements traits that are useful when dealing with Vectors of egui's `Value`
pub trait EguiHelper { pub trait EguiHelper {
/// Converts to `egui::plot::Values` /// Converts to `egui::plot::Values`
fn to_values(self) -> PlotPoints; fn to_values(self) -> PlotPoints<'static>;
/// Converts to `egui::plot::Line` /// Converts to `egui::plot::Line`
fn to_line(self) -> Line; fn to_line(self) -> Line<'static>;
/// Converts to `egui::plot::Points` /// Converts to `egui::plot::Points`
fn to_points(self) -> Points; fn to_points(self) -> Points<'static>;
/// Converts Vector of Values into vector of tuples /// Converts Vector of Values into vector of tuples
fn to_tuple(self) -> Vec<(f64, f64)>; fn to_tuple(self) -> Vec<(f64, f64)>;
@ -22,18 +22,18 @@ pub trait EguiHelper {
impl EguiHelper for Vec<PlotPoint> { impl EguiHelper for Vec<PlotPoint> {
#[inline(always)] #[inline(always)]
fn to_values(self) -> PlotPoints { fn to_values(self) -> PlotPoints<'static> {
PlotPoints::from(unsafe { std::mem::transmute::<Vec<PlotPoint>, Vec<[f64; 2]>>(self) }) PlotPoints::from(unsafe { std::mem::transmute::<Vec<PlotPoint>, Vec<[f64; 2]>>(self) })
} }
#[inline(always)] #[inline(always)]
fn to_line(self) -> Line { fn to_line(self) -> Line<'static> {
Line::new(self.to_values()) Line::new("", self.to_values())
} }
#[inline(always)] #[inline(always)]
fn to_points(self) -> Points { fn to_points(self) -> Points<'static> {
Points::new(self.to_values()) Points::new("", self.to_values())
} }
#[inline(always)] #[inline(always)]