use crate::rational_polynomial::RationalPolynomial;
use malachite_base::num::conversion::traits::ConvertibleFrom;
use malachite_nz::integer_polynomial::IntegerPolynomial;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct IntegerPolynomialFromRationalPolynomialError;
impl TryFrom<RationalPolynomial> for IntegerPolynomial {
type Error = IntegerPolynomialFromRationalPolynomialError;
fn try_from(p: RationalPolynomial) -> Result<Self, Self::Error> {
if p.denominator == 1u32 {
Ok(p.numerator)
} else {
Err(IntegerPolynomialFromRationalPolynomialError)
}
}
}
impl TryFrom<&RationalPolynomial> for IntegerPolynomial {
type Error = IntegerPolynomialFromRationalPolynomialError;
fn try_from(p: &RationalPolynomial) -> Result<Self, Self::Error> {
if p.denominator == 1u32 {
Ok(p.numerator.clone())
} else {
Err(IntegerPolynomialFromRationalPolynomialError)
}
}
}
impl ConvertibleFrom<&RationalPolynomial> for IntegerPolynomial {
#[inline]
fn convertible_from(p: &RationalPolynomial) -> bool {
p.denominator == 1u32
}
}