use crate::num::basic::unsigneds::PrimitiveUnsigned;
use crate::unsigned_polynomial::{SerdeUnsignedPolynomial, UnsignedPolynomial};
use alloc::string::{String, ToString};
impl<T: PrimitiveUnsigned> From<UnsignedPolynomial<T>> for SerdeUnsignedPolynomial<T> {
#[inline]
fn from(p: UnsignedPolynomial<T>) -> Self {
Self(p.coefficients)
}
}
impl<T: PrimitiveUnsigned> TryFrom<SerdeUnsignedPolynomial<T>> for UnsignedPolynomial<T> {
type Error = String;
#[inline]
fn try_from(p: SerdeUnsignedPolynomial<T>) -> Result<Self, String> {
if p.0.last() == Some(&T::ZERO) {
return Err("Last coefficient is zero".to_string());
}
Ok(Self { coefficients: p.0 })
}
}