|
@@ -13,90 +13,149 @@ PartialEq {
|
|
/// The caller must make sure, that the given value can be represented in the target type.
|
|
/// The caller must make sure, that the given value can be represented in the target type.
|
|
/// Otherwise behaviour is undefined.
|
|
/// Otherwise behaviour is undefined.
|
|
unsafe fn whole(value: u32) -> Self;
|
|
unsafe fn whole(value: u32) -> Self;
|
|
|
|
+
|
|
|
|
+ /// Calculate the absolute value.
|
|
|
|
+ fn abs(self) -> Self;
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for f32 {
|
|
impl Numeric for f32 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for f64 {
|
|
impl Numeric for f64 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for i8 {
|
|
impl Numeric for i8 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for i16 {
|
|
impl Numeric for i16 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for i32 {
|
|
impl Numeric for i32 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for i64 {
|
|
impl Numeric for i64 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for i128 {
|
|
impl Numeric for i128 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for isize {
|
|
impl Numeric for isize {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self.abs()
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for u8 {
|
|
impl Numeric for u8 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for u16 {
|
|
impl Numeric for u16 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for u32 {
|
|
impl Numeric for u32 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for u64 {
|
|
impl Numeric for u64 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for u128 {
|
|
impl Numeric for u128 {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
impl Numeric for usize {
|
|
impl Numeric for usize {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
unsafe fn whole(value: u32) -> Self {
|
|
value as Self
|
|
value as Self
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ fn abs(self) -> Self {
|
|
|
|
+ self
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
#[cfg(test)]
|
|
#[cfg(test)]
|