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

25
storm/Big.cpp Normal file
View file

@ -0,0 +1,25 @@
#include "storm/Big.hpp"
#include "storm/big/Ops.hpp"
#include "storm/Memory.hpp"
#include <cstring>
void SBigFromUnsigned(BigData* num, uint32_t val) {
FromUnsigned(num->Primary(), val);
}
void SBigNew(BigData** num) {
auto m = SMemAlloc(sizeof(BigData), __FILE__, __LINE__, 0x0);
*num = new (m) BigData();
}
void SBigToBinaryBuffer(BigData* num, uint8_t* data, uint32_t maxBytes, uint32_t* bytes) {
auto& output = num->Output();
ToBinary(output, num->Primary());
uint32_t n = output.Count() < maxBytes ? output.Count() : maxBytes;
memcpy(data, output.Ptr(), n);
if (bytes) {
*bytes = n;
}
}