From 1f1f6c62da7585948b41acb71c3f3e551dfc7518 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Thu, 13 Apr 2017 20:04:01 +0200 Subject: [PATCH] Derive Copy and Clone for Page and add a Frame::clone method --- src/memory/mod.rs | 4 ++++ src/memory/paging/mod.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/src/memory/mod.rs b/src/memory/mod.rs index 98b36e0..daa3478 100644 --- a/src/memory/mod.rs +++ b/src/memory/mod.rs @@ -19,6 +19,10 @@ impl Frame { fn start_address(&self) -> PhysicalAddress { self.number * PAGE_SIZE } + + fn clone(&self) -> Frame { + Frame { number: self.number } + } } pub trait FrameAllocator { diff --git a/src/memory/paging/mod.rs b/src/memory/paging/mod.rs index a096654..8273feb 100644 --- a/src/memory/paging/mod.rs +++ b/src/memory/paging/mod.rs @@ -11,6 +11,7 @@ const ENTRY_COUNT: usize = 512; pub type PhysicalAddress = usize; pub type VirtualAddress = usize; +#[derive(Debug, Clone, Copy)] pub struct Page { number: usize, }