aboutsummaryrefslogtreecommitdiff
path: root/azalea-world/src/bit_storage.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2023-09-18 19:29:14 -0500
committermat <git@matdoes.dev>2023-09-18 19:29:14 -0500
commite6941b6a24deed617d09c6e08ba65278bb3bcf25 (patch)
treea647ca131cd87d7d6cdb463dd50f497f4320656b /azalea-world/src/bit_storage.rs
parent856a3252f693421df519cbc4d9bc03cfc0f0c212 (diff)
downloadazalea-drasl-e6941b6a24deed617d09c6e08ba65278bb3bcf25.tar.xz
instanceloadedevent and a few fixes
Diffstat (limited to 'azalea-world/src/bit_storage.rs')
-rwxr-xr-xazalea-world/src/bit_storage.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/azalea-world/src/bit_storage.rs b/azalea-world/src/bit_storage.rs
index 9f9b7abf..13fa0698 100755
--- a/azalea-world/src/bit_storage.rs
+++ b/azalea-world/src/bit_storage.rs
@@ -218,6 +218,32 @@ impl BitStorage {
pub fn size(&self) -> usize {
self.size
}
+
+ pub fn iter(&self) -> BitStorageIter {
+ BitStorageIter {
+ storage: self,
+ index: 0,
+ }
+ }
+}
+
+pub struct BitStorageIter<'a> {
+ storage: &'a BitStorage,
+ index: usize,
+}
+
+impl<'a> Iterator for BitStorageIter<'a> {
+ type Item = u64;
+
+ fn next(&mut self) -> Option<Self::Item> {
+ if self.index >= self.storage.size {
+ return None;
+ }
+
+ let value = self.storage.get(self.index);
+ self.index += 1;
+ Some(value)
+ }
}
#[cfg(test)]