use crate::integer::Integer;
use crate::natural::Natural;
impl Integer {
pub fn from_sign_and_abs(sign: bool, abs: Natural) -> Self {
Self {
sign: sign || abs == 0,
abs,
}
}
pub fn from_sign_and_abs_ref(sign: bool, abs: &Natural) -> Self {
Self {
sign: sign || *abs == 0,
abs: abs.clone(),
}
}
}
impl From<Natural> for Integer {
fn from(value: Natural) -> Self {
Self {
sign: true,
abs: value,
}
}
}
impl<'a> From<&'a Natural> for Integer {
fn from(value: &'a Natural) -> Self {
Self {
sign: true,
abs: value.clone(),
}
}
}