diff options
Diffstat (limited to 'src/cached_inode.rs')
-rw-r--r-- | src/cached_inode.rs | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/cached_inode.rs b/src/cached_inode.rs deleted file mode 100644 index a4e8202..0000000 --- a/src/cached_inode.rs +++ /dev/null @@ -1,33 +0,0 @@ -use crate::disk::data_block::{Block, DataBlock}; -use crate::disk::inode::Inode; - -pub struct CachedInode { - pub inode: Inode, - pub index: usize, - pub dirty: bool, -} - -#[derive(Clone)] -pub struct CachedBlock<T: Block> { - pub block: T, - pub index: usize, - pub dirty: bool, -} - -impl<T: Block> CachedBlock<T> { - fn cast<U: Block>(&self) -> CachedBlock<U> { - unsafe { std::mem::transmute_copy(&self) } - } -} - -pub fn convert_mut<U: Block, T: Block>(input_block: &mut CachedBlock<U>) -> &mut CachedBlock<T> { - let ptr = input_block as *const CachedBlock<U> as *mut u8; - let block = ptr.cast::<CachedBlock<T>>(); - unsafe { &mut *block } -} - -pub fn convert<U: Block, T: Block>(input_block: &CachedBlock<U>) -> &CachedBlock<T> { - let ptr = input_block as *const CachedBlock<U> as *mut u8; - let block = ptr.cast::<CachedBlock<T>>(); - unsafe { &*block } -} |