#ifndef __PROTO_PACK_H__ #define __PROTO_PACK_H__ #include uint64_t decodeBytesToU64(const uint8_t* bytes); uint32_t decodeBytesToU32(const uint8_t* bytes); uint16_t decodeBytesToU16(const uint8_t* bytes); void encodeUint8ToBytes(uint8_t num, uint8_t* tgt); void encodeUint16ToBytes(uint16_t num, uint8_t* tgt); void encodeUint32ToBytes(uint32_t num, uint8_t* tgt); void encodeUint64ToBytes(uint64_t num, uint8_t* tgt); #define encodeUintToBytes(num, tgt) _Generic((num), \ uint8_t: encodeUint8ToBytes, \ uint16_t: encodeUint16ToBytes, \ uint32_t: encodeUint32ToBytes, \ uint64_t: encodeUint64ToBytes \ )(num, tgt) #endif //ifndef __PROTO_PACK_H__