15#ifndef PRIVACY_PROOFS_ZK_LIB_UTIL_SERIALIZATION_H_
16#define PRIVACY_PROOFS_ZK_LIB_UTIL_SERIALIZATION_H_
22static inline void u64_to_le(uint8_t a[], uint64_t x) {
24 a[1] = (x >> 8) & 0xffu;
25 a[2] = (x >> 16) & 0xffu;
26 a[3] = (x >> 24) & 0xffu;
27 a[4] = (x >> 32) & 0xffu;
28 a[5] = (x >> 40) & 0xffu;
29 a[6] = (x >> 48) & 0xffu;
30 a[7] = (x >> 56) & 0xffu;
33static inline uint64_t u64_of_le(
const uint8_t a[]) {
34 return ((uint64_t)a[7] << 56) | ((uint64_t)a[6] << 48) |
35 ((uint64_t)a[5] << 40) | ((uint64_t)a[4] << 32) |
36 ((uint64_t)a[3] << 24) | ((uint64_t)a[2] << 16) |
37 ((uint64_t)a[1] << 8) | (uint64_t)a[0];
40static inline void u32_to_le(uint8_t a[], uint32_t x) {
42 a[1] = (x >> 8) & 0xffu;
43 a[2] = (x >> 16) & 0xffu;
44 a[3] = (x >> 24) & 0xffu;
47static inline uint32_t u32_of_le(
const uint8_t a[]) {
48 return ((uint32_t)a[3] << 24) | ((uint32_t)a[2] << 16) |
49 ((uint32_t)a[1] << 8) | (uint32_t)a[0];