e7738de6d2
CI / Deep Native Runtime Cases (1/6) (push) Has been skipped
CI / Native Preflight (push) Failing after 1s
CI / Native Runtime Cases (1/2) (push) Failing after 0s
CI / Native Runtime Cases (2/2) (push) Failing after 1s
CI / Native Metadata Reports (push) Failing after 0s
CI / Native Direct Backend Artifacts (push) Failing after 0s
CI / Native Sanitizer Smoke (push) Failing after 1s
CI / Command Contract Snapshots (push) Failing after 1s
CI / Deep Conformance Suite (push) Has been skipped
CI / Graph Build Perf (push) Failing after 1s
CI / Deep Native Preflight (push) Has been skipped
CI / Deep Native Runtime Cases (2/6) (push) Has been skipped
CI / Deep Native Runtime Cases (3/6) (push) Has been skipped
CI / Conformance Suite (push) Failing after 1s
CI / Workspace Checks (push) Failing after 0s
CI / Deep Native Runtime Cases (5/6) (push) Has been skipped
CI / Deep Native Runtime Cases (6/6) (push) Has been skipped
CI / Deep Native Runtime Cases (4/6) (push) Has been skipped
CI / Deep Graph Build Perf (push) Has been skipped
28 lines
2.2 KiB
Plaintext
28 lines
2.2 KiB
Plaintext
pub fn main(world: World) -> Void raises {
|
|
let data: Span<u8> = "{\"user\":{\"name\":\"zero\",\"count\":42,\"active\":true,\"scores\":[7,42]},\"empty\":[],\"items\":[{\"id\":1},{\"id\":2}]}"
|
|
let object_count: Maybe<usize> = std.json.objectFieldCount(data)
|
|
var key_buf: [16]u8 = [0_u8; 16]
|
|
let key0: Maybe<Span<u8>> = std.json.objectKey(key_buf, data, 0)
|
|
let value0: Maybe<Span<u8>> = std.json.objectValue(data, 0)
|
|
let user: Maybe<Span<u8>> = std.json.field(data, "user")
|
|
let scores: Maybe<Span<u8>> = std.json.path(data, "user.scores")
|
|
let score_count: Maybe<usize> = std.json.arrayCount("[7,42]")
|
|
let score1: Maybe<Span<u8>> = std.json.arrayValue("[7,42]", 1)
|
|
var name_buf: [16]u8 = [0_u8; 16]
|
|
let name: Maybe<Span<u8>> = std.json.pathString(name_buf, data, "user.name")
|
|
let count: Maybe<u32> = std.json.pathU32(data, "user.count")
|
|
let active: Maybe<Bool> = std.json.pathBool(data, "user.active")
|
|
let empty_count: Maybe<usize> = std.json.arrayCount("[]")
|
|
let empty_object_count: Maybe<usize> = std.json.objectFieldCount("{}")
|
|
let bad_array: Maybe<usize> = std.json.arrayCount("[1,]")
|
|
let bad_path: Maybe<Span<u8>> = std.json.path(data, "user.")
|
|
let bad_key: Maybe<Span<u8>> = std.json.objectKey(key_buf, "{\"a\":1,}", 0_usize)
|
|
let bad_object_value: Maybe<Span<u8>> = std.json.objectValue("{\"a\":1,}", 0_usize)
|
|
let bad_array_value: Maybe<Span<u8>> = std.json.arrayValue("[1,]", 0_usize)
|
|
if object_count.has && object_count.value == 3_usize && key0.has && std.mem.eql(key0.value, "user") && value0.has && user.has && std.mem.eql(value0.value, user.value) && scores.has && std.mem.eql(scores.value, "[7,42]") && score_count.has && score_count.value == 2_usize && score1.has && std.mem.eql(score1.value, "42") && name.has && std.mem.eql(name.value, "zero") && count.has && count.value == 42_u32 && active.has && active.value && empty_count.has && empty_count.value == 0_usize && empty_object_count.has && empty_object_count.value == 0_usize && !bad_array.has && !bad_path.has && !bad_key.has && !bad_object_value.has && !bad_array_value.has {
|
|
check world.out.write("std json cursors ok\n")
|
|
return
|
|
}
|
|
check world.err.write("std json cursors failed\n")
|
|
}
|