Difference between revisions of "Zig"

From air
Jump to navigation Jump to search
(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");...")
 
Line 3: Line 3:
 
https://ziglang.org/
 
https://ziglang.org/
   
<code>
+
<pre>
   
 
const std = @import("std");
 
const std = @import("std");
Line 35: Line 35:
   
   
</code>
+
</pre>

Revision as of 15:00, 4 August 2021

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});
}