Skip to content

Commit 80cb0d9

Browse files
committed
refactor: simplify iterator logic in iter and iter2 functions
1 parent fa66ab6 commit 80cb0d9

File tree

1 file changed

+6
-12
lines changed

1 file changed

+6
-12
lines changed

hashmap/utils.mbt

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,9 @@ pub fn clear[K, V](self : T[K, V]) -> Unit {
7474
pub fn iter[K, V](self : T[K, V]) -> Iter[(K, V)] {
7575
Iter::new(fn(yield_) {
7676
for entry in self.entries {
77-
match entry {
78-
Some({ key, value, .. }) =>
79-
if yield_((key, value)) == IterEnd {
80-
break IterEnd
81-
}
82-
None => continue
77+
if entry is Some({ key, value, .. }) {
78+
guard yield_((key, value)) is IterContinue else { break IterEnd }
79+
8380
}
8481
} else {
8582
IterContinue
@@ -112,12 +109,9 @@ pub fn iter[K, V](self : T[K, V]) -> Iter[(K, V)] {
112109
pub fn iter2[K, V](self : T[K, V]) -> Iter2[K, V] {
113110
Iter2::new(fn(yield_) {
114111
for entry in self.entries {
115-
match entry {
116-
Some({ key, value, .. }) =>
117-
if yield_(key, value) == IterEnd {
118-
break IterEnd
119-
}
120-
None => continue
112+
if entry is Some({ key, value, .. }) {
113+
guard yield_(key, value) is IterContinue else { break IterEnd }
114+
121115
}
122116
} else {
123117
IterContinue

0 commit comments

Comments
 (0)