use crate::*; pub trait ByteProvider: Sized + std::fmt::Display { fn compute(input: &mut T, salt: &salt::Salt, provided: &mut usize) -> Result; fn bytes(&self) -> &[u8]; } pub fn compute(input: &mut T, salt: salt::Salt) -> Result<(usize, P), error::Error> { let mut output = 0usize; let this = P::compute(input, &salt, &mut output)?; Ok((output, this)) }