#pragma once #include "types.h" #include template T read (LibSerial::SerialStream& serial) { T x; serial.read((char*) &x, sizeof(T)); return x; } template <> U32 read (LibSerial::SerialStream& serial) { U32 x = 0; for (int i = 0; i < 4; ++i) { U8 b; serial.read((char*)&b, 1); x = x >> 8; x |= (b << 24); } return x; } template void write (LibSerial::SerialStream& serial, const T& val) { serial.write((const char*) &val, sizeof(T)); }