Zig: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 38: | Line 38: | ||
</pre> |
</pre> |
||
== References == |
|||
* https://github.com/inetbowser/zig-xtensa/blob/xtensa/XTENSA.md |
|||
* https://rbino.com/posts/zig-stm32-blink/ |
|||
Latest revision as of 12:05, 5 November 2024
Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
https://ziglang.org/documentation/master/#Introduction
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});
}