use super::*;
impl<N: Network> TryFrom<Vec<Field<N>>> for Ciphertext<N> {
type Error = Error;
fn try_from(fields: Vec<Field<N>>) -> Result<Self, Self::Error> {
match fields.len() <= N::MAX_DATA_SIZE_IN_FIELDS as usize {
true => Ok(Self(fields)),
false => bail!("Ciphertext exceeds maximum allowed size"),
}
}
}
impl<N: Network> TryFrom<&[Field<N>]> for Ciphertext<N> {
type Error = Error;
fn try_from(fields: &[Field<N>]) -> Result<Self, Self::Error> {
Self::from_fields(fields)
}
}
impl<N: Network> FromFields for Ciphertext<N> {
type Field = Field<N>;
fn from_fields(fields: &[Self::Field]) -> Result<Self> {
Self::try_from(fields.to_vec())
}
}