pub fn generate<R, W>(opts: Options, read: &mut R, write: &mut W) -> Result<()>where R: Read + ?Sized, W: Write + ?Sized,