Is the following approach correct or is there a better way?
pub fn encodeNumber(comptime T: type, value: T) [@sizeOf(T)]u8 {
var bytes: [@sizeOf(T)]u8 = undefined;
std.mem.writeInt(T, &bytes, value, std.builtin.Endian.little);
return bytes;
}
pub fn encodeFloat(comptime T: type, value: T) [@sizeOf(T)]u8 {
var bytes: [@sizeOf(T)]u8 = undefined;
switch (@sizeOf(T)) {
2 => bytes = encodeNumber(u16, @as(u16, @bitCast(value))),
4 => bytes = encodeNumber(u32, @as(u32, @bitCast(value))),
8 => bytes = encodeNumber(u64, @as(u64, @bitCast(value))),
else => unreachable,
}
return bytes;
}