Sponge construction is a method of compression needing 1) a function on fixed-length bit strings( here we use keccak_f), 2) a padding function (pad10*1), and 3) a rate. The input and output of this method can be arbitrarily long
(f: SpongeFn, pad: PadFn, r: usize, n: &[bool], d: usize)