std/lib/collections: add Object.get_len(); add some tests for encoding/json

Signed-off-by: Pierre Curto <pierre.curto@gmail.com>
This commit is contained in:
Pierre Curto
2023-08-25 21:25:07 +02:00
committed by Christoffer Lerno
parent 120d5a672c
commit c09b6154f4
2 changed files with 13 additions and 1 deletions

View File

@@ -274,6 +274,14 @@ fn Object* Object.get_at(&self, usz index)
return self.array.get(index); return self.array.get(index);
} }
/**
* @require self.is_indexable()
**/
fn usz Object.get_len(&self)
{
return self.array.len();
}
/** /**
* @require self.is_indexable() * @require self.is_indexable()
**/ **/

View File

@@ -6,9 +6,13 @@ import std::encoding::json;
fn void! simple_test() fn void! simple_test()
{ {
ByteReader reader; ByteReader reader;
reader.init(`{ "b": 123, "c": [ { "d": 66 }, null, "hello", false ] }`); reader.init(`{ "b": 123, "c": [ { "d": 66 }, null, "hello", false, { "id": "xyz" } ] }`);
Object* o = json::parse(reader.as_stream())!; Object* o = json::parse(reader.as_stream())!;
assert(o.get_int("b")! == 123); assert(o.get_int("b")! == 123);
assert(o.get("c").get_len()! == 5);
assert(o.get("c").get_at(0).get_int("d")! == 66); assert(o.get("c").get_at(0).get_int("d")! == 66);
assert(o.get("c").get_at(1).is_null()!); assert(o.get("c").get_at(1).is_null()!);
assert(o.get("c").get_string_at(2)! == "hello");
assert(o.get("c").get_bool_at(3)! == false);
assert(o.get("c").get_at(4).get_string("id")! == "xyz");
} }