mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 05:10:03 -04:00
Add DragValue::new and Slider::new
This commit is contained in:
@@ -67,6 +67,7 @@ use std::ops::{Add, Div, Mul, RangeInclusive, Sub};
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
pub mod align;
|
||||
mod numeric;
|
||||
mod pos2;
|
||||
mod rect;
|
||||
mod rect_transform;
|
||||
@@ -76,6 +77,7 @@ mod vec2;
|
||||
|
||||
pub use {
|
||||
align::{Align, Align2},
|
||||
numeric::*,
|
||||
pos2::*,
|
||||
rect::*,
|
||||
rect_transform::*,
|
||||
|
||||
60
emath/src/numeric.rs
Normal file
60
emath/src/numeric.rs
Normal file
@@ -0,0 +1,60 @@
|
||||
/// Implemented for all builtin numeric types
|
||||
pub trait Numeric: Clone + Copy + PartialEq + PartialOrd + 'static {
|
||||
/// Is this an integer type?
|
||||
const INTEGRAL: bool;
|
||||
|
||||
/// Smallest finite value
|
||||
const MIN: Self;
|
||||
|
||||
/// Largest finite value
|
||||
const MAX: Self;
|
||||
|
||||
fn to_f64(self) -> f64;
|
||||
|
||||
fn from_f64(num: f64) -> Self;
|
||||
}
|
||||
|
||||
macro_rules! impl_numeric_float {
|
||||
($t:ident) => {
|
||||
impl Numeric for $t {
|
||||
const INTEGRAL: bool = false;
|
||||
const MIN: Self = std::$t::MIN;
|
||||
const MAX: Self = std::$t::MAX;
|
||||
fn to_f64(self) -> f64 {
|
||||
self as f64
|
||||
}
|
||||
fn from_f64(num: f64) -> Self {
|
||||
num as Self
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! impl_numeric_integer {
|
||||
($t:ident) => {
|
||||
impl Numeric for $t {
|
||||
const INTEGRAL: bool = true;
|
||||
const MIN: Self = std::$t::MIN;
|
||||
const MAX: Self = std::$t::MAX;
|
||||
fn to_f64(self) -> f64 {
|
||||
self as f64
|
||||
}
|
||||
fn from_f64(num: f64) -> Self {
|
||||
num as Self
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
impl_numeric_float!(f32);
|
||||
impl_numeric_float!(f64);
|
||||
impl_numeric_integer!(i8);
|
||||
impl_numeric_integer!(u8);
|
||||
impl_numeric_integer!(i16);
|
||||
impl_numeric_integer!(u16);
|
||||
impl_numeric_integer!(i32);
|
||||
impl_numeric_integer!(u32);
|
||||
impl_numeric_integer!(i64);
|
||||
impl_numeric_integer!(u64);
|
||||
impl_numeric_integer!(isize);
|
||||
impl_numeric_integer!(usize);
|
||||
Reference in New Issue
Block a user