use crate::field::extension::Extendable;
use crate::hash::hash_types::RichField;
use crate::iop::target::BoolTarget;
use crate::plonk::circuit_builder::CircuitBuilder;
use crate::plonk::config::AlgebraicHasher;
impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
pub fn permute<H: AlgebraicHasher<F>>(
&mut self,
inputs: H::AlgebraicPermutation,
) -> H::AlgebraicPermutation {
let _false = self._false();
self.permute_swapped::<H>(inputs, _false)
}
pub(crate) fn permute_swapped<H: AlgebraicHasher<F>>(
&mut self,
inputs: H::AlgebraicPermutation,
swap: BoolTarget,
) -> H::AlgebraicPermutation {
H::permute_swapped(inputs, swap, self)
}
}