Refactors TieredStorageFile read/write methods (#34147)

This commit is contained in:
Brooks 2023-11-17 14:17:49 -05:00 committed by GitHub
parent 9bb82a3901
commit e23bfb5167
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 11 deletions

View File

@ -36,18 +36,14 @@ impl TieredStorageFile {
pub fn write_type<T>(&self, value: &T) -> IoResult<usize> {
let ptr = value as *const _ as *const u8;
let slice = unsafe { std::slice::from_raw_parts(ptr, mem::size_of::<T>()) };
(&self.0).write_all(slice)?;
Ok(std::mem::size_of::<T>())
let bytes = unsafe { std::slice::from_raw_parts(ptr, mem::size_of::<T>()) };
self.write_bytes(bytes)
}
pub fn read_type<T>(&self, value: &mut T) -> IoResult<()> {
let ptr = value as *mut _ as *mut u8;
let slice = unsafe { std::slice::from_raw_parts_mut(ptr, mem::size_of::<T>()) };
(&self.0).read_exact(slice)?;
Ok(())
let bytes = unsafe { std::slice::from_raw_parts_mut(ptr, mem::size_of::<T>()) };
self.read_bytes(bytes)
}
pub fn seek(&self, offset: u64) -> IoResult<u64> {
@ -65,8 +61,6 @@ impl TieredStorageFile {
}
pub fn read_bytes(&self, buffer: &mut [u8]) -> IoResult<()> {
(&self.0).read_exact(buffer)?;
Ok(())
(&self.0).read_exact(buffer)
}
}