add to_values
This commit is contained in:
parent
001a21f250
commit
c753621cf8
15
src/misc.rs
15
src/misc.rs
@ -183,6 +183,9 @@ impl<'a> From<&'a [f64]> for SteppedVector<'a> {
|
||||
|
||||
/// Implements traits that are useful when dealing with Vectors of egui's `Value`
|
||||
pub trait EguiHelper {
|
||||
/// Converts to `egui::plot::Values`
|
||||
fn to_values(self) -> Values;
|
||||
|
||||
/// Converts to `egui::plot::Line`
|
||||
fn to_line(self) -> Line;
|
||||
|
||||
@ -195,13 +198,19 @@ pub trait EguiHelper {
|
||||
|
||||
impl EguiHelper for Vec<Value> {
|
||||
#[inline(always)]
|
||||
fn to_line(self) -> Line { Line::new(Values::from_values(self)) }
|
||||
fn to_values(self) -> Values { Values::from_values(self) }
|
||||
|
||||
#[inline(always)]
|
||||
fn to_points(self) -> Points { Points::new(Values::from_values(self)) }
|
||||
fn to_line(self) -> Line { Line::new(self.to_values()) }
|
||||
|
||||
#[inline(always)]
|
||||
fn to_tuple(self) -> Vec<(f64, f64)> { self.iter().map(|ele| (ele.x, ele.y)).collect() }
|
||||
fn to_points(self) -> Points { Points::new(self.to_values()) }
|
||||
|
||||
#[inline(always)]
|
||||
fn to_tuple(self) -> Vec<(f64, f64)> {
|
||||
// self.iter().map(|ele| (ele.x, ele.y)).collect()
|
||||
unsafe { std::mem::transmute::<Vec<Value>, Vec<(f64, f64)>>(self) }
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -115,6 +115,17 @@ fn invalid_hashed_storage() {
|
||||
assert_eq!(hashed_storage_read("aaaa"), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn to_values() {
|
||||
use egui::plot::{Value, Values};
|
||||
use ytbn_graphing_software::EguiHelper;
|
||||
let data_raw = vec![(0.0, 1.0), (1.0, 3.0), (2.0, 4.0)];
|
||||
let data: Vec<Value> = data_raw.iter().map(|(x, y)| Value::new(*x, *y)).collect();
|
||||
let values: Values = data.clone().to_values();
|
||||
|
||||
assert_eq!(*values.get_values(), data);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn to_tuple() {
|
||||
use egui::plot::Value;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user