Skip to content

Commit 2f87032

Browse files
committed
Add start() and end() method to the Region trait
1 parent 4618091 commit 2f87032

File tree

4 files changed

+22
-18
lines changed

4 files changed

+22
-18
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
77

88
## Unreleased
99

10-
No unreleased changes yet
10+
- Add `start()` and `end()` method to the `Region` trait.
1111

1212
## [0.3.1] - 2023-12-04
1313

embedded-storage-async/src/nor_flash.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,15 @@ impl Page {
102102
size,
103103
}
104104
}
105-
106-
/// The end address of the page
107-
const fn end(&self) -> u32 {
108-
self.start + self.size as u32
109-
}
110105
}
111106

112107
impl Region for Page {
113-
/// Checks if an address offset is contained within the page
114-
fn contains(&self, address: u32) -> bool {
115-
(self.start <= address) && (self.end() > address)
108+
fn start(&self) -> u32 {
109+
self.start
110+
}
111+
112+
fn end(&self) -> u32 {
113+
self.start + self.size as u32
116114
}
117115
}
118116

src/lib.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,16 @@ pub mod nor_flash;
1515

1616
/// A region denotes a contiguous piece of memory between two addresses.
1717
pub trait Region {
18+
/// Start address of the region of `Self`
19+
fn start(&self) -> u32;
20+
21+
/// End address of the region of `Self`
22+
fn end(&self) -> u32;
23+
1824
/// Check if `address` is contained in the region of `Self`
19-
fn contains(&self, address: u32) -> bool;
25+
fn contains(&self, address: u32) -> bool {
26+
(address >= self.start()) && (address < self.end())
27+
}
2028
}
2129

2230
/// Transparent read only storage trait

src/nor_flash.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -202,17 +202,15 @@ impl Page {
202202
size,
203203
}
204204
}
205-
206-
/// The end address of the page
207-
const fn end(&self) -> u32 {
208-
self.start + self.size as u32
209-
}
210205
}
211206

212207
impl Region for Page {
213-
/// Checks if an address offset is contained within the page
214-
fn contains(&self, address: u32) -> bool {
215-
(self.start <= address) && (self.end() > address)
208+
fn start(&self) -> u32 {
209+
self.start
210+
}
211+
212+
fn end(&self) -> u32 {
213+
self.start + self.size as u32
216214
}
217215
}
218216

0 commit comments

Comments
 (0)