diff options
| author | Josh Wolfe <thejoshwolfe@gmail.com> | 2018-09-16 23:57:23 -0400 |
|---|---|---|
| committer | Josh Wolfe <thejoshwolfe@gmail.com> | 2018-11-14 20:57:51 -0500 |
| commit | 8008ae470e2ad4c185b239b436fb2396f9499ca1 (patch) | |
| tree | 03907c853a9dd8449850d015e5985f87882f1991 /std | |
| parent | 772876b2f0104953af56eccbd85b2b21c6e908ef (diff) | |
| download | zig-8008ae470e2ad4c185b239b436fb2396f9499ca1.tar.gz zig-8008ae470e2ad4c185b239b436fb2396f9499ca1.zip | |
io read/write int be/le optimizations
Diffstat (limited to 'std')
| -rw-r--r-- | std/io.zig | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/std/io.zig b/std/io.zig index ad4e126aeb..cd32192ba2 100644 --- a/std/io.zig +++ b/std/io.zig @@ -155,11 +155,15 @@ pub fn InStream(comptime ReadError: type) type { } pub fn readIntLe(self: *Self, comptime T: type) !T { - return self.readInt(builtin.Endian.Little, T); + var bytes: [@sizeOf(T)]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntLE(T, bytes); } pub fn readIntBe(self: *Self, comptime T: type) !T { - return self.readInt(builtin.Endian.Big, T); + var bytes: [@sizeOf(T)]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntBE(T, bytes); } pub fn readInt(self: *Self, endian: builtin.Endian, comptime T: type) !T { @@ -226,11 +230,15 @@ pub fn OutStream(comptime WriteError: type) type { } pub fn writeIntLe(self: *Self, comptime T: type, value: T) !void { - return self.writeInt(builtin.Endian.Little, T, value); + var bytes: [@sizeOf(T)]u8 = undefined; + mem.writeIntLE(T, &bytes, value); + return self.writeFn(self, bytes); } pub fn writeIntBe(self: *Self, comptime T: type, value: T) !void { - return self.writeInt(builtin.Endian.Big, T, value); + var bytes: [@sizeOf(T)]u8 = undefined; + mem.writeIntBE(T, &bytes, value); + return self.writeFn(self, bytes); } pub fn writeInt(self: *Self, endian: builtin.Endian, comptime T: type, value: T) !void { |
