pub trait PTE {
fn is_unused(&self) -> bool;
fn set_unused(&mut self);
fn flags(&self) -> PageTableFlags;
fn ppn(&self) -> usize;
fn ppn_u64(&self) -> u64;
fn addr<T: PhysicalAddress>(&self) -> T;
fn frame<T: PhysicalAddress>(&self) -> FrameWith<T>;
fn set<T: PhysicalAddress>(
&mut self,
frame: FrameWith<T>,
flags: PageTableFlags
);
fn flags_mut(&mut self) -> &mut PageTableFlags;
}