lib/acp/src/json.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const std = @import("std");
 2 
 3 pub fn getObject(value: std.json.Value) ?std.json.ObjectMap {
 4     return switch (value) {
 5         .object => |object| object,
 6         else => null,
 7     };
 8 }
 9 
10 pub fn getString(value: std.json.Value) ?[]const u8 {
11     return switch (value) {
12         .string => |string| string,
13         else => null,
14     };
15 }
16 
17 pub fn getInteger(value: std.json.Value) ?i64 {
18     return switch (value) {
19         .integer => |integer| integer,
20         else => null,
21     };
22 }
23 
24 pub fn getBool(value: std.json.Value) ?bool {
25     return switch (value) {
26         .bool => |item| item,
27         else => null,
28     };
29 }
30 
31 pub fn objectString(object: std.json.ObjectMap, key: []const u8) ?[]const u8 {
32     const value = object.get(key) orelse return null;
33     return getString(value);
34 }
35 
36 pub fn objectInteger(object: std.json.ObjectMap, key: []const u8) ?i64 {
37     const value = object.get(key) orelse return null;
38     return getInteger(value);
39 }
40 
41 pub fn objectBool(object: std.json.ObjectMap, key: []const u8) ?bool {
42     const value = object.get(key) orelse return null;
43     return getBool(value);
44 }
45 
46 pub fn objectObject(object: std.json.ObjectMap, key: []const u8) ?std.json.ObjectMap {
47     const value = object.get(key) orelse return null;
48     return getObject(value);
49 }