pub fn ftroika_var_rounds(out_buf: &mut [Trit], in_buf: &[Trit], num_rounds: usize) {
    assert!(num_rounds <= NUM_MAX_ROUNDS);

    let mut ftroika = Ftroika::new(num_rounds);
    ftroika.absorb(in_buf);
    ftroika.finalize();
    ftroika.squeeze(out_buf);
}
/// Troika with variable number of rounds.
Troika with variable number of rounds.
Troika with variable number of rounds .
pub fn ftroika_var_rounds(out_buf: &mut [Trit], in_buf: &[Trit], num_rounds: usize) {
    assert!(num_rounds <= NUM_MAX_ROUNDS);
    let mut ftroika = Ftroika::new(num_rounds);
    ftroika.absorb(in_buf);
    ftroika.finalize();
    ftroika.squeeze(out_buf);
}
pub fn ftroika_var_rounds ( out_buf : & mut [ Trit ] , in_buf : & [ Trit ] , num_rounds : usize ) { assert ! ( num_rounds NUM_MAX_ROUNDS ) ; let mut ftroika = Ftroika :: new ( num_rounds ) ; ftroika . absorb ( in_buf ) ; ftroika . finalize ( ) ; ftroika . squeeze ( out_buf ) ; }
Troika with variable number of rounds.
Troika with variable number of rounds .
out_buf
&mut [Trit]
in_buf
&[Trit]
num_rounds
usize
out_buf
&mut [Trit]
in_buf
&[Trit]
num_rounds
usize