rustysynth-ext 1.5.0

A SoundFont (sf2, sf3) MIDI synthesizer written in pure Rust (a fork of rustysynth)
Documentation
use std::io::Read;

pub(crate) struct ReadCounter<'a, R: Read> {
    reader: &'a mut R,
    count: usize,
}

impl<'a, R: Read> ReadCounter<'a, R> {
    pub(crate) fn new(reader: &'a mut R) -> Self {
        Self { reader, count: 0 }
    }

    pub(crate) fn bytes_read(&self) -> usize {
        self.count
    }
}

impl<R: Read> Read for ReadCounter<'_, R> {
    fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
        let len = self.reader.read(buf)?;
        self.count += len;
        Ok(len)
    }
}