diff --git a/src/fields/fp.rs b/src/fields/fp.rs index 82fb827..4fc9d27 100644 --- a/src/fields/fp.rs +++ b/src/fields/fp.rs @@ -73,13 +73,9 @@ macro_rules! field_impl { } /// Converts a U256 to an Fr regardless of modulus. - pub fn new_mul_factor(mut a: U256) -> Option { - if true { - a.mul(&U256::from($rsquared), &U256::from($modulus), $inv); - Some($name(a)) - } else { - None - } + pub fn new_mul_factor(mut a: U256) -> Self { + a.mul(&U256::from($rsquared), &U256::from($modulus), $inv); + $name(a) } pub fn interpret(buf: &[u8; 64]) -> Self { diff --git a/src/lib.rs b/src/lib.rs index b1aeea6..b18d1a7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -48,8 +48,7 @@ impl Fr { pub fn from_slice(slice: &[u8]) -> Result { arith::U256::from_slice(slice) .map_err(|_| FieldError::InvalidSliceLength) // todo: maybe more sensful error handling - .and_then(|x| fields::Fr::new_mul_factor(x).ok_or(FieldError::NotMember)) - .map(|x| Fr(x)) + .map(|x| Fr::new_mul_factor(x)) } pub fn to_big_endian(&self, slice: &mut [u8]) -> Result<(), FieldError> { self.0 @@ -60,8 +59,8 @@ impl Fr { pub fn new(val: arith::U256) -> Option { fields::Fr::new(val).map(|x| Fr(x)) } - pub fn new_mul_factor(val: arith::U256) -> Option { - fields::Fr::new_mul_factor(val).map(|x| Fr(x)) + pub fn new_mul_factor(val: arith::U256) -> Self { + Fr(fields::Fr::new_mul_factor(val)) } }