Zig

From air
Revision as of 15:00, 4 August 2021 by Donsez (talk | contribs) (Created page with "Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. https://ziglang.org/ <code> const std = @import("std");...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

https://ziglang.org/

const std = @import("std"); const json = std.json; const payload =

   \\{
   \\    "vals": {
   \\        "testing": 1,
   \\        "production": 42
   \\    },
   \\    "uptime": 9999
   \\}

const Config = struct {

   vals: struct { testing: u8, production: u8 },
   uptime: u64,

}; const config = x: {

   var stream = json.TokenStream.init(payload);
   const res = json.parse(Config, &stream, .{});
   // Assert no error can occur since we are
   // parsing this JSON at comptime!
   break :x res catch unreachable;

}; pub fn main() !void {

   if (config.vals.production > 50) {
       @compileError("only up to 50 supported");
   }
   std.log.info("up={d}", .{config.uptime});

}