authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-01-11 19:42:32+13:00
committergravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-01-11 19:50:08+13:00
log899e36489d68fba560122d9222693593cd92aa24
tree9fc6ecf6ff587878e178c9413d1d06c53ad035bd
parent891c93c118a85ce16225ed2e97676cdae2abe657

Fix endian swap parameters


1 files changed, 8 insertions(+), 3 deletions(-)

std/endian.zig+8-3
......@@ -2,11 +2,11 @@ const mem = @import("mem.zig");
22const builtin = @import("builtin");
33
44pub fn swapIfLe(comptime T: type, x: T) -> T {
5 return swapIf(false, T, x);
5 return swapIf(builtin.Endian.Little, T, x);
66}
77
88pub fn swapIfBe(comptime T: type, x: T) -> T {
9 return swapIf(true, T, x);
9 return swapIf(builtin.Endian.Big, T, x);
1010}
1111
1212pub fn swapIf(endian: builtin.Endian, comptime T: type, x: T) -> T {
......@@ -15,6 +15,11 @@ pub fn swapIf(endian: builtin.Endian, comptime T: type, x: T) -> T {
1515
1616pub fn swap(comptime T: type, x: T) -> T {
1717 var buf: [@sizeOf(T)]u8 = undefined;
18 mem.writeInt(buf[0..], x, false);
18 mem.writeInt(buf[0..], x, builtin.Endian.Little);
1919 return mem.readInt(buf, T, builtin.Endian.Big);
2020}
21
22test "swap" {
23 const debug = @import("debug/index.zig");
24 debug.assert(swap(u32, 0xDEADBEEF) == 0xEFBEADDE);
25}