diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-25 20:27:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-25 20:27:34 +0900 |
| commit | 797ceeaa2b01070cf31c8d24ce440b8ee5feff7f (patch) | |
| tree | 0c2bf8c3517f7512645f41acbca0dbf206b7c1b8 /src/jq/execute.zig | |
| parent | 8b8bc79d647285a170aa928ff31a0989c9ef6e33 (diff) | |
| download | zgjq-797ceeaa2b01070cf31c8d24ce440b8ee5feff7f.tar.gz zgjq-797ceeaa2b01070cf31c8d24ce440b8ee5feff7f.tar.zst zgjq-797ceeaa2b01070cf31c8d24ce440b8ee5feff7f.zip | |
implement optional index access
Diffstat (limited to 'src/jq/execute.zig')
| -rw-r--r-- | src/jq/execute.zig | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/jq/execute.zig b/src/jq/execute.zig index 9e3a0d5..caf525a 100644 --- a/src/jq/execute.zig +++ b/src/jq/execute.zig @@ -196,6 +196,14 @@ pub const Runtime = struct { const result = try jv.ops.index(base, key); try self.values.push(result); }, + .index_opt => { + std.debug.assert(self.values.ensureSize(2)); + + const base = self.values.pop(); + const key = self.values.pop(); + const result = jv.ops.index(base, key) catch .null; + try self.values.push(result); + }, .add => { std.debug.assert(self.values.ensureSize(3)); |
