Clean up the code around zero handling.
This commit is contained in:
@@ -8,12 +8,20 @@ macro_rules! signed_impls {
|
|||||||
|
|
||||||
impl $sname {
|
impl $sname {
|
||||||
pub fn new(negative: bool, value: $name) -> $sname {
|
pub fn new(negative: bool, value: $name) -> $sname {
|
||||||
|
if value.is_zero() {
|
||||||
|
$sname{ negative: false, value: value }
|
||||||
|
} else {
|
||||||
$sname{ negative: negative, value: value }
|
$sname{ negative: negative, value: value }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn negate(&self) -> $sname {
|
pub fn negate(&self) -> $sname {
|
||||||
|
if self.value.is_zero() {
|
||||||
|
self.clone()
|
||||||
|
} else {
|
||||||
$sname{ negative: !self.negative, value: self.value.clone() }
|
$sname{ negative: !self.negative, value: self.value.clone() }
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn abs(&self) -> $sname {
|
pub fn abs(&self) -> $sname {
|
||||||
$sname{ negative: false, value: self.value.clone() }
|
$sname{ negative: false, value: self.value.clone() }
|
||||||
|
|||||||
Reference in New Issue
Block a user