zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

poc_printValue_fn.zig (838B) - Raw


      1 const Writer = struct {
      2     pub fn printValue(self: *Writer, value: anytype) !void {
      3         switch (@typeInfo(@TypeOf(value))) {
      4             .int => {
      5                 return self.writeInt(value);
      6             },
      7             .float => {
      8                 return self.writeFloat(value);
      9             },
     10             .pointer => {
     11                 return self.write(value);
     12             },
     13             else => {
     14                 @compileError("Unable to print type '" ++ @typeName(@TypeOf(value)) ++ "'");
     15             },
     16         }
     17     }
     18 
     19     fn write(self: *Writer, value: []const u8) !void {
     20         _ = self;
     21         _ = value;
     22     }
     23     fn writeInt(self: *Writer, value: anytype) !void {
     24         _ = self;
     25         _ = value;
     26     }
     27     fn writeFloat(self: *Writer, value: anytype) !void {
     28         _ = self;
     29         _ = value;
     30     }
     31 };
     32 
     33 // syntax