use crate::ff::{
PrimeFieldP434, PrimeFieldP503, PrimeFieldP610, PrimeFieldP751, QuadraticExtension,
};
pub fn str_to_u64(s: &str) -> Result<u64, String> {
u64::from_str_radix(s, 16).or_else(|_| Err(String::from("Cannot parse from string")))
}
pub fn str_to_p434(s0: &str, s1: &str) -> Result<QuadraticExtension<PrimeFieldP434>, String> {
Ok(QuadraticExtension::from(
PrimeFieldP434::from_string(s0)?,
PrimeFieldP434::from_string(s1)?,
))
}
pub fn str_to_p503(s0: &str, s1: &str) -> Result<QuadraticExtension<PrimeFieldP503>, String> {
Ok(QuadraticExtension::from(
PrimeFieldP503::from_string(s0)?,
PrimeFieldP503::from_string(s1)?,
))
}
pub fn str_to_p751(s0: &str, s1: &str) -> Result<QuadraticExtension<PrimeFieldP751>, String> {
Ok(QuadraticExtension::from(
PrimeFieldP751::from_string(s0)?,
PrimeFieldP751::from_string(s1)?,
))
}
pub fn str_to_p610(s0: &str, s1: &str) -> Result<QuadraticExtension<PrimeFieldP610>, String> {
Ok(QuadraticExtension::from(
PrimeFieldP610::from_string(s0)?,
PrimeFieldP610::from_string(s1)?,
))
}
pub fn concatenate(arrays: &[&[u8]]) -> Vec<u8> {
let mut result = vec![];
for &array in arrays {
result.extend(array);
}
result
}