diff options
| author | mat <git@matdoes.dev> | 2023-09-18 19:29:14 -0500 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2023-09-18 19:29:14 -0500 |
| commit | e6941b6a24deed617d09c6e08ba65278bb3bcf25 (patch) | |
| tree | a647ca131cd87d7d6cdb463dd50f497f4320656b /azalea-world/src/bit_storage.rs | |
| parent | 856a3252f693421df519cbc4d9bc03cfc0f0c212 (diff) | |
| download | azalea-drasl-e6941b6a24deed617d09c6e08ba65278bb3bcf25.tar.xz | |
instanceloadedevent and a few fixes
Diffstat (limited to 'azalea-world/src/bit_storage.rs')
| -rwxr-xr-x | azalea-world/src/bit_storage.rs | 26 |
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)] |
