feat(big): add SBigFromUnsigned, SBigNew, and SBigToBinaryBuffer

This commit is contained in:
fallenoak 2023-01-29 11:48:18 -06:00 committed by GitHub
parent 630e6dbb1f
commit 7d5a157162
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 211 additions and 0 deletions

30
storm/big/BigBuffer.cpp Normal file
View file

@ -0,0 +1,30 @@
#include "storm/big/BigBuffer.hpp"
uint32_t& BigBuffer::operator[](uint32_t index) {
this->GrowToFit(index);
return this->m_data[this->m_offset + index];
}
uint32_t BigBuffer::operator[](uint32_t index) const {
if (this->IsUsed(index)) {
return const_cast<TSGrowableArray<uint32_t>&>(this->m_data)[this->m_offset + index];
}
return 0;
}
uint32_t BigBuffer::Count() const {
return this->m_data.Count() - this->m_offset;
}
void BigBuffer::GrowToFit(uint32_t index) {
this->m_data.GrowToFit(this->m_offset + index, 1);
}
int32_t BigBuffer::IsUsed(uint32_t index) const {
return index + this->m_offset < this->m_data.Count();
}
void BigBuffer::SetCount(uint32_t count) {
this->m_data.SetCount(this->m_offset + count);
}