Skip to main content

FullRoundLayer

Trait FullRoundLayer 

Source
pub trait FullRoundLayer<R, const WIDTH: usize, const D: u64>: Sync + Clone{
    // 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§

Source

fn permute_state_initial(&self, state: &mut [R; WIDTH])

Apply the RF/2 initial full rounds.

Source

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.

Implementors§

Source§

impl<F, A, Mds, const WIDTH: usize, const D: u64> FullRoundLayer<A, WIDTH, D> for Poseidon1ExternalLayerGeneric<F, Mds, WIDTH>