use super::{mystd::io::Read, File}; | |
use alloc::vec::Vec; | |
use core::ops::Deref; | |
pub struct Mmap { | |
vec: Vec<u8>, | |
} | |
impl Mmap { | |
pub unsafe fn map(mut file: &File, len: usize) -> Option<Mmap> { | |
let mut mmap = Mmap { | |
vec: Vec::with_capacity(len), | |
}; | |
file.read_to_end(&mut mmap.vec).ok()?; | |
Some(mmap) | |
} | |
} | |
impl Deref for Mmap { | |
type Target = [u8]; | |
fn deref(&self) -> &[u8] { | |
&self.vec[..] | |
} | |
} |