35 #ifndef LEDGER_CORE_ENDIAN_H 36 #define LEDGER_CORE_ENDIAN_H 53 namespace endianness {
55 enum struct Endianness {
103 void *
swapToEndianness(
void *ptr,
size_t size, Endianness current, Endianness
final);
105 const void* int_to_array(
int i, Endianness endianness);
106 const void* unsigned_long_long_to_array(
unsigned long long i, Endianness endianness);
108 template <
typename T>
109 void* scalar_type_to_array(T i, Endianness endianness) {
110 uint8_t *data = (uint8_t *) std::malloc(
sizeof(i));
111 auto ptr = (
const uint8_t *)(&i);
112 for (
auto index = 0; index <
sizeof(i); index++) {
113 data[index] = ptr[index];
122 #endif //LEDGER_CORE_ENDIAN_H bool isSystemBigEndian()
Definition: endian.cpp:45
Endianness getSystemEndianness()
Definition: endian.cpp:39
bool isSystemLittleEndian()
Definition: endian.cpp:49
void * swapToEndianness(void *ptr, size_t size, Endianness current, Endianness final)
Definition: endian.cpp:76
void * swapToLittleEndian(void *ptr, size_t size)
Definition: endian.cpp:69
Definition: Account.cpp:8
void * swapToBigEndian(void *ptr, size_t size)
Definition: endian.cpp:62