hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

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 };