mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
feat(big): add SBigFromUnsigned, SBigNew, and SBigToBinaryBuffer
This commit is contained in:
parent
630e6dbb1f
commit
7d5a157162
10 changed files with 211 additions and 0 deletions
25
storm/Big.cpp
Normal file
25
storm/Big.cpp
Normal 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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue