pub trait FullRoundLayer<R, const WIDTH: usize, const D: u64>: Sync + Clonewhere
R: PrimeCharacteristicRing,{
// Required methods
fn permute_state_initial(&self, state: &mut [R; WIDTH]);
fn permute_state_terminal(&self, state: &mut [R; WIDTH]);
}Expand description
The full (external) round layer of the Poseidon1 permutation.
Implementors apply the RF/2 initial or terminal full rounds to the state. Field-specific implementations (e.g., NEON, AVX2) can override the generic behavior for better performance.
Required Methods§
Sourcefn permute_state_initial(&self, state: &mut [R; WIDTH])
fn permute_state_initial(&self, state: &mut [R; WIDTH])
Apply the RF/2 initial full rounds.
Sourcefn permute_state_terminal(&self, state: &mut [R; WIDTH])
fn permute_state_terminal(&self, state: &mut [R; WIDTH])
Apply the RF/2 terminal full rounds.
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.