refactor(network): place range reader implementations before tests

This commit is contained in:
zarzet committed 2026-10-04 01:41:59 +07:00
1 parent 39d856c44f
commit 314dceb1d1
1 file changed
+13 -13
+13 -13
View File
@@ -229,6 +229,19 @@ impl Read for RangeReader<'_> {
}
}
impl Seek for RangeReader<'_> {
fn seek(&mut self, position: SeekFrom) -> io::Result<u64> {
let next = match position {
SeekFrom::Start(n) => i128::from(n),
SeekFrom::Current(n) => i128::from(self.position) + i128::from(n),
SeekFrom::End(n) => i128::from(self.size) + i128::from(n),
};
self.position =
u64::try_from(next).map_err(|_| io::Error::other("invalid metadata seek"))?;
Ok(self.position)
}
}
#[cfg(test)]
mod tests {
use super::*;
@@ -411,16 +424,3 @@ mod tests {
assert!(read(&fixture.url, "song.flac", &|| Ok(())).is_err());
}
}
impl Seek for RangeReader<'_> {
fn seek(&mut self, position: SeekFrom) -> io::Result<u64> {
let next = match position {
SeekFrom::Start(n) => i128::from(n),
SeekFrom::Current(n) => i128::from(self.position) + i128::from(n),
SeekFrom::End(n) => i128::from(self.size) + i128::from(n),
};
self.position =
u64::try_from(next).map_err(|_| io::Error::other("invalid metadata seek"))?;
Ok(self.position)
}
}