pub trait ExternalLayer<AF, const WIDTH: usize, const D: u64>: Sync + Clonewhere
AF: AbstractField,{
// Required methods
fn permute_state_initial(&self, state: &mut [AF; WIDTH]);
fn permute_state_terminal(&self, state: &mut [AF; WIDTH]);
}
Expand description
A trait containing all data needed to implement the external layers of Poseidon2.
Required Methods§
Sourcefn permute_state_initial(&self, state: &mut [AF; WIDTH])
fn permute_state_initial(&self, state: &mut [AF; WIDTH])
Perform the initial external layers of the Poseidon2 permutation on the given state.
Sourcefn permute_state_terminal(&self, state: &mut [AF; WIDTH])
fn permute_state_terminal(&self, state: &mut [AF; WIDTH])
Perform the terminal external layers of the Poseidon2 permutation on the given state.
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.