You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

16 lines
451 B

use crate::*;
pub trait ByteProvider: Sized + std::fmt::Display
{
fn compute<T: Read + ?Sized>(input: &mut T, salt: &salt::Salt, provided: &mut usize) -> Result<Self, error::Error>;
fn bytes(&self) -> &[u8];
}
pub fn compute<T: Read + ?Sized, P: ByteProvider>(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))
}