aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authorJosh Wolfe <thejoshwolfe@gmail.com>2018-09-16 23:57:23 -0400
committerJosh Wolfe <thejoshwolfe@gmail.com>2018-11-14 20:57:51 -0500
commit8008ae470e2ad4c185b239b436fb2396f9499ca1 (patch)
tree03907c853a9dd8449850d015e5985f87882f1991 /std
parent772876b2f0104953af56eccbd85b2b21c6e908ef (diff)
downloadzig-8008ae470e2ad4c185b239b436fb2396f9499ca1.tar.gz
zig-8008ae470e2ad4c185b239b436fb2396f9499ca1.zip
io read/write int be/le optimizations
Diffstat (limited to 'std')
-rw-r--r--std/io.zig16
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 {