fructose/properties/
primality.rs1use crate::algorithms::factorization::is_prime as is_prime_algo;
2
3pub trait Primality {
5 fn is_irreducible(&self) -> bool;
6 fn is_prime(&self) -> bool;
7}
8
9macro_rules! impl_primality {
10 ($($set:ty)*) => {
11 $(
12 impl Primality for $set {
13 #[inline]
14 fn is_irreducible(&self) -> bool {
15 unimplemented!()
16 }
17
18 #[inline]
19 fn is_prime(&self) -> bool {
20 is_prime_algo(*self as u64)
21 }
22 }
23 )*
24 }
25}
26
27impl_primality!(u8 u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize f32 f64);