pub trait Field:
Copy
+ Default
+ Debug
+ PartialEq {
type Int: PrimInt + Default + Debug + From<u8> + Into<u128> + Into<Self::Long> + Truncate<u128>;
type Long: PrimInt + From<Self::Int>;
type LongLong: PrimInt;
const Q: Self::Int;
const QL: Self::Long;
const QLL: Self::LongLong;
const BARRETT_SHIFT: usize;
const BARRETT_MULTIPLIER: Self::LongLong;
// Required methods
fn small_reduce(x: Self::Int) -> Self::Int;
fn barrett_reduce(x: Self::Long) -> Self::Int;
}Required Associated Constants§
const Q: Self::Int
const QL: Self::Long
const QLL: Self::LongLong
const BARRETT_SHIFT: usize
const BARRETT_MULTIPLIER: Self::LongLong
Required Associated Types§
type Int: PrimInt + Default + Debug + From<u8> + Into<u128> + Into<Self::Long> + Truncate<u128>
type Long: PrimInt + From<Self::Int>
type LongLong: PrimInt
Required Methods§
fn small_reduce(x: Self::Int) -> Self::Int
fn barrett_reduce(x: Self::Long) -> Self::Int
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.