authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-07-29 14:51:25-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2018-07-29 14:51:25-04:00
logf884381c608f47180d97534ba9b872d62ddb105b
treef5838ce24e8f444695a94751e86f5e3eabea821b
parent2cbad364c1d23b64ae064f8547590c133b4f070a
parentf36faa32c46897a12852da9f382ab10979511d6f
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #1300 from dbandstra/more-stream-functions

A few new functions in InStream/OutStream

1 files changed, 21 insertions(+), 0 deletions(-)

std/io.zig+21
......@@ -200,6 +200,13 @@ pub fn InStream(comptime ReadError: type) type {
200200 try self.readNoEof(input_slice);
201201 return mem.readInt(input_slice, T, endian);
202202 }
203
204 pub fn skipBytes(self: *Self, num_bytes: usize) !void {
205 var i: usize = 0;
206 while (i < num_bytes) : (i += 1) {
207 _ = try self.readByte();
208 }
209 }
203210 };
204211}
205212
......@@ -230,6 +237,20 @@ pub fn OutStream(comptime WriteError: type) type {
230237 try self.writeFn(self, slice);
231238 }
232239 }
240
241 pub fn writeIntLe(self: *Self, comptime T: type, value: T) !void {
242 return self.writeInt(builtin.Endian.Little, T, value);
243 }
244
245 pub fn writeIntBe(self: *Self, comptime T: type, value: T) !void {
246 return self.writeInt(builtin.Endian.Big, T, value);
247 }
248
249 pub fn writeInt(self: *Self, endian: builtin.Endian, comptime T: type, value: T) !void {
250 var bytes: [@sizeOf(T)]u8 = undefined;
251 mem.writeInt(bytes[0..], value, endian);
252 return self.writeFn(self, bytes);
253 }
233254 };
234255}
235256