page.rs 386 B

12345678910111213
  1. use std::ops::RangeInclusive;
  2. #[derive(Copy, Clone, Eq, Hash, PartialEq)]
  3. pub struct Page(u32);
  4. impl Page {
  5. pub fn page_of(address: u32) -> Page { Page(address >> 12) }
  6. pub fn to_address(self) -> u32 { self.0 << 12 }
  7. pub fn to_u32(self) -> u32 { self.0 }
  8. pub fn address_range(self) -> RangeInclusive<u32> {
  9. self.to_address()..=self.to_address() + 4095
  10. }
  11. }