use crate::natural::Natural;
use crate::natural_polynomial::{NaturalPolynomial, SerdeNaturalPolynomial};
use alloc::string::{String, ToString};
use malachite_base::num::basic::traits::Zero;
impl From<NaturalPolynomial> for SerdeNaturalPolynomial {
#[inline]
fn from(p: NaturalPolynomial) -> Self {
Self(p.coefficients)
}
}
impl TryFrom<SerdeNaturalPolynomial> for NaturalPolynomial {
type Error = String;
#[inline]
fn try_from(p: SerdeNaturalPolynomial) -> Result<Self, String> {
if p.0.last() == Some(&Natural::ZERO) {
return Err("Last coefficient is zero".to_string());
}
Ok(Self { coefficients: p.0 })
}
}