From f7a5e4f52c529a74ca0e4ec5a269c4d594990802 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Sun, 12 Jun 2022 21:47:52 +0200 Subject: Refactored io functions handling --- src/io.zig | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/io.zig (limited to 'src/io.zig') diff --git a/src/io.zig b/src/io.zig new file mode 100644 index 0000000..549711d --- /dev/null +++ b/src/io.zig @@ -0,0 +1,44 @@ +const std = @import("std"); + +pub const IOErrors = error{ + IOError, + NotImplemented, +}; + +pub const Functions = struct { + characterInput: fn () IOErrors!i64, + decimalInput: fn () IOErrors!i64, + characterOutput: fn (i64) IOErrors!void, + decimalOutput: fn (i64) IOErrors!void, +}; + +pub const defaultFunctions = Functions{ + .characterInput = characterInput, + .decimalInput = decimalInput, + .characterOutput = characterOutput, + .decimalOutput = decimalOutput, +}; + +fn characterInput() IOErrors!i64 { + // TODO + return error.NotImplemented; +} + +fn decimalInput() IOErrors!i64 { + // TODO + return error.NotImplemented; +} + +fn characterOutput(v: i64) IOErrors!void { + std.debug.print("{c}", .{@intCast(u8, v)}); + return; +} + +fn decimalOutput(v: i64) IOErrors!void { + std.debug.print("{d}", .{v}); + return; +} + +test "all" { + std.testing.refAllDecls(@This()); +} -- cgit v1.2.3