authorgravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2018-09-16 23:57:23-04:00
committergravatar for thejoshwolfe@gmail.comJosh Wolfe <thejoshwolfe@gmail.com> 2018-11-14 20:57:51-05:00
log8008ae470e2ad4c185b239b436fb2396f9499ca1
tree03907c853a9dd8449850d015e5985f87882f1991
parent772876b2f0104953af56eccbd85b2b21c6e908ef

io read/write int be/le optimizations


1 files changed, 12 insertions(+), 4 deletions(-)

std/io.zig+12-4
......@@ -155,11 +155,15 @@ pub fn InStream(comptime ReadError: type) type {
155155 }
156156
157157 pub fn readIntLe(self: *Self, comptime T: type) !T {
158 return self.readInt(builtin.Endian.Little, T);
158 var bytes: [@sizeOf(T)]u8 = undefined;
159 try self.readNoEof(bytes[0..]);
160 return mem.readIntLE(T, bytes);
159161 }
160162
161163 pub fn readIntBe(self: *Self, comptime T: type) !T {
162 return self.readInt(builtin.Endian.Big, T);
164 var bytes: [@sizeOf(T)]u8 = undefined;
165 try self.readNoEof(bytes[0..]);
166 return mem.readIntBE(T, bytes);
163167 }
164168
165169 pub fn readInt(self: *Self, endian: builtin.Endian, comptime T: type) !T {
......@@ -226,11 +230,15 @@ pub fn OutStream(comptime WriteError: type) type {
226230 }
227231
228232 pub fn writeIntLe(self: *Self, comptime T: type, value: T) !void {
229 return self.writeInt(builtin.Endian.Little, T, value);
233 var bytes: [@sizeOf(T)]u8 = undefined;
234 mem.writeIntLE(T, &bytes, value);
235 return self.writeFn(self, bytes);
230236 }
231237
232238 pub fn writeIntBe(self: *Self, comptime T: type, value: T) !void {
233 return self.writeInt(builtin.Endian.Big, T, value);
239 var bytes: [@sizeOf(T)]u8 = undefined;
240 mem.writeIntBE(T, &bytes, value);
241 return self.writeFn(self, bytes);
234242 }
235243
236244 pub fn writeInt(self: *Self, endian: builtin.Endian, comptime T: type, value: T) !void {