endian.ha (789B)
1 // License: MPL-2.0 2 // (c) 2021 Armin Weigl <tb46305@gmail.com> 3 // (c) 2021 Drew DeVault <sir@cmpwn.com> 4 5 // The set of functions used for endian-aware encoding. 6 export type endian = struct { 7 getu16: *fn(buf: []u8) u16, 8 putu16: *fn(buf: []u8, in: u16) void, 9 getu32: *fn(buf: []u8) u32, 10 putu32: *fn(buf: []u8, in: u32) void, 11 getu64: *fn(buf: []u8) u64, 12 putu64: *fn(buf: []u8, in: u64) void, 13 }; 14 15 // Big endian; MSB first. 16 export const big: endian = endian { 17 getu16 = &begetu16, 18 putu16 = &beputu16, 19 getu32 = &begetu32, 20 putu32 = &beputu32, 21 getu64 = &begetu64, 22 putu64 = &beputu64, 23 }; 24 25 // Little endian; LSB first. 26 export const little: endian = endian { 27 getu16 = &legetu16, 28 putu16 = &leputu16, 29 getu32 = &legetu32, 30 putu32 = &leputu32, 31 getu64 = &legetu64, 32 putu64 = &leputu64, 33 };