aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/maths/numeric_traits.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libpsi-core/src/maths/numeric_traits.rs')
-rw-r--r--libpsi-core/src/maths/numeric_traits.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/libpsi-core/src/maths/numeric_traits.rs b/libpsi-core/src/maths/numeric_traits.rs
new file mode 100644
index 0000000..dd7fdec
--- /dev/null
+++ b/libpsi-core/src/maths/numeric_traits.rs
@@ -0,0 +1,24 @@
+use core::ops;
+
+pub trait Numeric:
+ Copy
+ + PartialOrd
+ + ops::Add<Output = Self>
+ + ops::Mul<Output = Self>
+ + ops::Sub<Output = Self>
+ + ops::Div<Output = Self>
+ + ops::Neg<Output = Self>
+ + ops::AddAssign
+ + ops::SubAssign
+ + ops::MulAssign
+ + ops::DivAssign
+{
+ fn zero() -> Self;
+ fn one() -> Self;
+}
+
+pub trait Integer: Numeric {}
+pub trait Float: Numeric {
+ fn sqrt(self) -> Self;
+ fn atan2(y: Self, x: Self) -> Self;
+}