json-as 1.1.15 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,27 +3,24 @@ import { JSON } from ".";
3
3
 
4
4
 
5
5
  @json
6
- class Person {
7
- id: string | null = null;
8
- firstName: string = "";
9
- lastName: string = "";
6
+ class Vec3 {
7
+ x: f32 = 0;
8
+ y: f32 = 0;
9
+ z: f32 = 0;
10
10
  __SERIALIZE(ptr: usize): void {
11
- bs.proposeSize(64);
12
- store<u64>(bs.offset, 28147948644860027, 0);
13
- store<u32>(bs.offset, 3801122, 8);
14
- bs.offset += 12;
15
- JSON.__serialize<string | null>(load<string | null>(ptr, offsetof<this>("id")));
16
- store<u64>(bs.offset, 29555310643511340, 0);
17
- store<u64>(bs.offset, 21955546407174258, 8);
18
- store<u64>(bs.offset, 9570583007002721, 16);
19
- store<u16>(bs.offset, 58, 24);
20
- bs.offset += 26;
21
- JSON.__serialize<string>(load<string>(ptr, offsetof<this>("firstName")));
22
- store<u64>(bs.offset, 27303536599629868, 0);
23
- store<u64>(bs.offset, 27303407755985011, 8);
24
- store<u64>(bs.offset, 16325694684725357, 16);
25
- bs.offset += 24;
26
- JSON.__serialize<string>(load<string>(ptr, offsetof<this>("lastName")));
11
+ bs.proposeSize(32);
12
+ store<u64>(bs.offset, 9570664606466171, 0);
13
+ store<u16>(bs.offset, 58, 8);
14
+ bs.offset += 10;
15
+ JSON.__serialize<f32>(load<f32>(ptr, offsetof<this>("x")));
16
+ store<u64>(bs.offset, 9570668901433388, 0);
17
+ store<u16>(bs.offset, 58, 8);
18
+ bs.offset += 10;
19
+ JSON.__serialize<f32>(load<f32>(ptr, offsetof<this>("y")));
20
+ store<u64>(bs.offset, 9570673196400684, 0);
21
+ store<u16>(bs.offset, 58, 8);
22
+ bs.offset += 10;
23
+ JSON.__serialize<f32>(load<f32>(ptr, offsetof<this>("z")));
27
24
  store<u16>(bs.offset, 125, 0);
28
25
  bs.offset += 2;
29
26
  }
@@ -31,8 +28,6 @@ class Person {
31
28
 
32
29
  @inline
33
30
  __INITIALIZE(): this {
34
- this.firstName = "";
35
- this.lastName = "";
36
31
  return this;
37
32
  }
38
33
  __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
@@ -71,53 +66,45 @@ class Person {
71
66
  while (srcStart < srcEnd) {
72
67
  const code = load<u16>(srcStart);
73
68
  if (code == 34 && load<u16>(srcStart - 2) !== 92) {
69
+ srcStart += 4;
70
+ keyStart = 0;
71
+ break;
72
+ }
73
+ srcStart += 2;
74
+ }
75
+ } else if (code - 48 <= 9 || code == 45) {
76
+ lastIndex = srcStart;
77
+ srcStart += 2;
78
+ while (srcStart < srcEnd) {
79
+ const code = load<u16>(srcStart);
80
+ if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
74
81
  switch (<u32>keyEnd - <u32>keyStart) {
75
- case 4: {
76
- const code32 = load<u32>(keyStart);
77
- if (code32 == 6553705) {
78
- store<string | null>(changetype<usize>(out), JSON.__deserialize<string | null>(lastIndex, srcStart + 2), offsetof<this>("id"));
79
- srcStart += 4;
80
- keyStart = 0;
81
- break;
82
- } else {
83
- srcStart += 4;
84
- keyStart = 0;
85
- break;
86
- }
87
- }
88
-
89
- case 18: {
90
- const codeS8 = load<u64>(keyStart, 0);
91
- const codeS16 = load<u64>(keyStart, 8);
92
- if (codeS8 == 32370111954878566 && codeS16 == 30681189078401140) {
93
- store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart + 2), offsetof<this>("firstName"));
94
- srcStart += 4;
82
+ case 2: {
83
+ const code16 = load<u16>(keyStart);
84
+ if (code16 == 120) {
85
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("x"));
86
+ srcStart += 2;
95
87
  keyStart = 0;
96
88
  break;
97
- } else {
98
- srcStart += 4;
89
+ } else if (code16 == 121) {
90
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("y"));
91
+ srcStart += 2;
99
92
  keyStart = 0;
100
93
  break;
101
- }
102
- }
103
-
104
- case 16: {
105
- const codeS8 = load<u64>(keyStart, 0);
106
- const codeS16 = load<u64>(keyStart, 8);
107
- if (codeS8 == 32651591226032236 && codeS16 == 28429440805568590) {
108
- store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart + 2), offsetof<this>("lastName"));
109
- srcStart += 4;
94
+ } else if (code16 == 122) {
95
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("z"));
96
+ srcStart += 2;
110
97
  keyStart = 0;
111
98
  break;
112
99
  } else {
113
- srcStart += 4;
100
+ srcStart += 2;
114
101
  keyStart = 0;
115
102
  break;
116
103
  }
117
104
  }
118
105
 
119
106
  default: {
120
- srcStart += 4;
107
+ srcStart += 2;
121
108
  keyStart = 0;
122
109
  break;
123
110
  }
@@ -126,18 +113,6 @@ class Person {
126
113
  }
127
114
  srcStart += 2;
128
115
  }
129
- } else if (code - 48 <= 9 || code == 45) {
130
- lastIndex = srcStart;
131
- srcStart += 2;
132
- while (srcStart < srcEnd) {
133
- const code = load<u16>(srcStart);
134
- if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
135
- srcStart += 2;
136
- keyStart = 0;
137
- break;
138
- }
139
- srcStart += 2;
140
- }
141
116
  } else if (code == 123) {
142
117
  lastIndex = srcStart;
143
118
  depth++;
@@ -150,7 +125,32 @@ class Person {
150
125
  } else if (code == 125) {
151
126
  if (--depth == 0) {
152
127
  srcStart += 2;
153
- keyStart = 0;
128
+ switch (<u32>keyEnd - <u32>keyStart) {
129
+ case 2: {
130
+ const code16 = load<u16>(keyStart);
131
+ if (code16 == 120) {
132
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("x"));
133
+ keyStart = 0;
134
+ break;
135
+ } else if (code16 == 121) {
136
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("y"));
137
+ keyStart = 0;
138
+ break;
139
+ } else if (code16 == 122) {
140
+ store<f32>(changetype<usize>(out), JSON.__deserialize<f32>(lastIndex, srcStart), offsetof<this>("z"));
141
+ keyStart = 0;
142
+ break;
143
+ } else {
144
+ keyStart = 0;
145
+ break;
146
+ }
147
+ }
148
+
149
+ default: {
150
+ keyStart = 0;
151
+ break;
152
+ }
153
+ }
154
154
  break;
155
155
  }
156
156
  } else if (code == 123) depth++;
@@ -193,26 +193,8 @@ class Person {
193
193
  } else if (code == 110) {
194
194
  if (load<u64>(srcStart) == 30399761348886638) {
195
195
  srcStart += 8;
196
- switch (<u32>keyEnd - <u32>keyStart) {
197
- case 4: {
198
- const code32 = load<u32>(keyStart);
199
- if (code32 == 6553705) {
200
- store<usize>(changetype<usize>(out), 0, offsetof<this>("id"));
201
- srcStart += 2;
202
- keyStart = 0;
203
- break;
204
- } else {
205
- srcStart += 2;
206
- keyStart = 0;
207
- break;
208
- }
209
- }
210
-
211
- default: {
212
- srcStart += 2;
213
- keyStart = 0;
214
- }
215
- }
196
+ srcStart += 2;
197
+ keyStart = 0;
216
198
  }
217
199
  } else {
218
200
  srcStart += 2;
@@ -226,175 +208,65 @@ class Person {
226
208
 
227
209
 
228
210
  @json
229
- class PeopleData {
230
- people: Array<Person> = [];
231
- __SERIALIZE(ptr: usize): void {
232
- bs.proposeSize(22);
233
- store<u64>(bs.offset, 28429453686341755, 0);
234
- store<u64>(bs.offset, 28429436511584367, 8);
235
- store<u32>(bs.offset, 3801122, 16);
236
- bs.offset += 20;
237
- JSON.__serialize<Array<Person>>(load<Array<Person>>(ptr, offsetof<this>("people")));
238
- store<u16>(bs.offset, 125, 0);
239
- bs.offset += 2;
240
- }
211
+ class Player {
241
212
 
213
+ @alias("first name")
214
+ firstName!: string | null;
215
+ lastName!: string;
216
+ lastActive!: Array<i32>;
242
217
 
243
- @inline
244
- __INITIALIZE(): this {
245
- this.people = [];
246
- return this;
247
- }
248
- __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
249
- let keyStart: usize = 0;
250
- let keyEnd: usize = 0;
251
- let isKey = false;
252
- let depth: i32 = 0;
253
- let lastIndex: usize = 0;
254
- while (srcStart < srcEnd && JSON.Util.isSpace(load<u16>(srcStart))) srcStart += 2;
255
- while (srcEnd > srcStart && JSON.Util.isSpace(load<u16>(srcEnd - 2))) srcEnd -= 2;
256
- if (srcStart - srcEnd == 0) throw new Error("Input string had zero length or was all whitespace");
257
- if (load<u16>(srcStart) != 123) throw new Error("Expected '{' at start of object at position " + (srcEnd - srcStart).toString());
258
- if (load<u16>(srcEnd - 2) != 125) throw new Error("Expected '}' at end of object at position " + (srcEnd - srcStart).toString());
259
- srcStart += 2;
260
- while (srcStart < srcEnd) {
261
- let code = load<u16>(srcStart);
262
- while (JSON.Util.isSpace(code)) code = load<u16>((srcStart += 2));
263
- if (keyStart == 0) {
264
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
265
- if (isKey) {
266
- keyStart = lastIndex;
267
- keyEnd = srcStart;
268
- while (JSON.Util.isSpace((code = load<u16>((srcStart += 2))))) {}
269
- if (code !== 58) throw new Error("Expected ':' after key at position " + (srcEnd - srcStart).toString());
270
- isKey = false;
271
- } else {
272
- isKey = true;
273
- lastIndex = srcStart + 2;
274
- }
275
- }
276
- srcStart += 2;
277
- } else {
278
- if (code == 34) {
279
- lastIndex = srcStart;
280
- srcStart += 2;
281
- while (srcStart < srcEnd) {
282
- const code = load<u16>(srcStart);
283
- if (code == 34 && load<u16>(srcStart - 2) !== 92) {
284
- srcStart += 4;
285
- keyStart = 0;
286
- break;
287
- }
288
- srcStart += 2;
289
- }
290
- } else if (code - 48 <= 9 || code == 45) {
291
- lastIndex = srcStart;
292
- srcStart += 2;
293
- while (srcStart < srcEnd) {
294
- const code = load<u16>(srcStart);
295
- if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
296
- srcStart += 2;
297
- keyStart = 0;
298
- break;
299
- }
300
- srcStart += 2;
301
- }
302
- } else if (code == 123) {
303
- lastIndex = srcStart;
304
- depth++;
305
- srcStart += 2;
306
- while (srcStart < srcEnd) {
307
- const code = load<u16>(srcStart);
308
- if (code == 34) {
309
- srcStart += 2;
310
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
311
- } else if (code == 125) {
312
- if (--depth == 0) {
313
- srcStart += 2;
314
- keyStart = 0;
315
- break;
316
- }
317
- } else if (code == 123) depth++;
318
- srcStart += 2;
319
- }
320
- } else if (code == 91) {
321
- lastIndex = srcStart;
322
- depth++;
323
- srcStart += 2;
324
- while (srcStart < srcEnd) {
325
- const code = load<u16>(srcStart);
326
- if (code == 34) {
327
- srcStart += 2;
328
- while (!(load<u16>(srcStart) == 34 && load<u16>(srcStart - 2) != 92)) srcStart += 2;
329
- } else if (code == 93) {
330
- if (--depth == 0) {
331
- srcStart += 2;
332
- switch (<u32>keyEnd - <u32>keyStart) {
333
- case 12: {
334
- const codeS8 = load<u64>(keyStart, 0);
335
- const codeS12 = load<u32>(keyStart, 8);
336
- if (codeS8 == 31525674139582576 && codeS12 == 6619244) {
337
- store<Array<Person>>(changetype<usize>(out), JSON.__deserialize<Array<Person>>(lastIndex, srcStart), offsetof<this>("people"));
338
- keyStart = 0;
339
- break;
340
- } else {
341
- keyStart = 0;
342
- break;
343
- }
344
- }
345
218
 
346
- default: {
347
- keyStart = 0;
348
- break;
349
- }
350
- }
351
- break;
352
- }
353
- } else if (code == 91) depth++;
354
- srcStart += 2;
355
- }
356
- } else if (code == 116) {
357
- if (load<u64>(srcStart) == 28429475166421108) {
358
- srcStart += 8;
359
- srcStart += 2;
360
- keyStart = 0;
361
- } else {
362
- throw new Error("Expected to find 'true' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
363
- }
364
- } else if (code == 102) {
365
- if (load<u64>(srcStart, 2) == 28429466576093281) {
366
- srcStart += 10;
367
- srcStart += 2;
368
- keyStart = 0;
369
- } else {
370
- throw new Error("Expected to find 'false' but found '" + JSON.Util.ptrToStr(lastIndex, srcStart) + "' instead at position " + (srcEnd - srcStart).toString());
371
- }
372
- } else if (code == 110) {
373
- if (load<u64>(srcStart) == 30399761348886638) {
374
- srcStart += 8;
375
- srcStart += 2;
376
- keyStart = 0;
377
- }
378
- } else {
379
- srcStart += 2;
380
- keyStart = 0;
381
- }
382
- }
383
- }
384
- return out;
385
- }
386
- }
219
+ @omitif((self: this): boolean => self.age < 18)
220
+ age!: i32;
387
221
 
388
222
 
389
- @json
390
- export class Response<T> {
391
- data: T | null = null;
223
+ @omitnull()
224
+ pos!: Vec3 | null;
225
+ isVerified!: boolean;
392
226
  __SERIALIZE(ptr: usize): void {
393
- bs.proposeSize(18);
394
- store<u64>(bs.offset, 27303502239891579, 0);
395
- store<u64>(bs.offset, 16325694684463220, 8);
396
- bs.offset += 16;
397
- JSON.__serialize<T | null>(load<T | null>(ptr, offsetof<this>("data")));
227
+ bs.proposeSize(160);
228
+ let block: usize = 0;
229
+ store<u16>(bs.offset, 123, 0);
230
+ bs.offset += 2;
231
+ if (!((self: this): boolean => self.age < 18)(this)) {
232
+ store<u64>(bs.offset, 28429415035764770, 0);
233
+ store<u32>(bs.offset, 3801122, 8);
234
+ bs.offset += 12;
235
+ JSON.__serialize<i32>(load<i32>(ptr, offsetof<this>("age")));
236
+ store<u16>(bs.offset, 44, 0);
237
+ bs.offset += 2;
238
+ }
239
+ if ((block = load<usize>(ptr, offsetof<this>("pos"))) !== 0) {
240
+ store<u64>(bs.offset, 32370099070435362, 0);
241
+ store<u32>(bs.offset, 3801122, 8);
242
+ bs.offset += 12;
243
+ JSON.__serialize<Vec3 | null>(load<Vec3 | null>(ptr, offsetof<this>("pos")));
244
+ store<u16>(bs.offset, 44, 0);
245
+ bs.offset += 2;
246
+ }
247
+ store<u64>(bs.offset, 32088598323265570, 0);
248
+ store<u64>(bs.offset, 30962384884727923, 8);
249
+ store<u64>(bs.offset, 9570583007002721, 16);
250
+ store<u16>(bs.offset, 58, 24);
251
+ bs.offset += 26;
252
+ JSON.__serialize<string | null>(load<string | null>(ptr, offsetof<this>("firstName")));
253
+ store<u64>(bs.offset, 27303536599629868, 0);
254
+ store<u64>(bs.offset, 27303407755985011, 8);
255
+ store<u64>(bs.offset, 16325694684725357, 16);
256
+ bs.offset += 24;
257
+ JSON.__serialize<string>(load<string>(ptr, offsetof<this>("lastName")));
258
+ store<u64>(bs.offset, 27303536599629868, 0);
259
+ store<u64>(bs.offset, 27866301874831475, 8);
260
+ store<u64>(bs.offset, 28429479460798580, 16);
261
+ store<u32>(bs.offset, 3801122, 24);
262
+ bs.offset += 28;
263
+ JSON.__serialize<Array<i32>>(load<Array<i32>>(ptr, offsetof<this>("lastActive")));
264
+ store<u64>(bs.offset, 32370073295519788, 0);
265
+ store<u64>(bs.offset, 29555362187509846, 8);
266
+ store<u64>(bs.offset, 28147931469643878, 16);
267
+ store<u32>(bs.offset, 3801122, 24);
268
+ bs.offset += 28;
269
+ JSON.__serialize<boolean>(load<boolean>(ptr, offsetof<this>("isVerified")));
398
270
  store<u16>(bs.offset, 125, 0);
399
271
  bs.offset += 2;
400
272
  }
@@ -402,10 +274,8 @@ export class Response<T> {
402
274
 
403
275
  @inline
404
276
  __INITIALIZE(): this {
405
- if (isManaged<nonnull<T | null>>() || isReference<nonnull<T | null>>()) {
406
- this.data = changetype<nonnull<T | null>>(__new(offsetof<nonnull<T | null>>(), idof<nonnull<T | null>>()));
407
- if (isDefined(this.data.__INITIALIZE)) changetype<nonnull<T | null>>(this.data).__INITIALIZE();
408
- }
277
+ store<string>(changetype<usize>(this), "", offsetof<this>("lastName"));
278
+ store<Array<i32>>(changetype<usize>(this), [], offsetof<this>("lastActive"));
409
279
  return this;
410
280
  }
411
281
  __DESERIALIZE<__JSON_T>(srcStart: usize, srcEnd: usize, out: __JSON_T): __JSON_T {
@@ -445,10 +315,27 @@ export class Response<T> {
445
315
  const code = load<u16>(srcStart);
446
316
  if (code == 34 && load<u16>(srcStart - 2) !== 92) {
447
317
  switch (<u32>keyEnd - <u32>keyStart) {
448
- case 8: {
449
- const code64 = load<u64>(keyStart);
450
- if (isString<T | null>() && code64 == 27303570963497060) {
451
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart + 2), offsetof<this>("data"));
318
+ case 20: {
319
+ const codeS8 = load<u64>(keyStart, 0);
320
+ const codeS16 = load<u64>(keyStart, 8);
321
+ const codeS20 = load<u32>(keyStart, 16);
322
+ if (codeS8 == 32370111954878566 && codeS16 == 27303545189433460 && codeS20 == 6619245) {
323
+ store<string | null>(changetype<usize>(out), JSON.__deserialize<string | null>(lastIndex, srcStart + 2), offsetof<this>("firstName"));
324
+ srcStart += 4;
325
+ keyStart = 0;
326
+ break;
327
+ } else {
328
+ srcStart += 4;
329
+ keyStart = 0;
330
+ break;
331
+ }
332
+ }
333
+
334
+ case 16: {
335
+ const codeS8 = load<u64>(keyStart, 0);
336
+ const codeS16 = load<u64>(keyStart, 8);
337
+ if (codeS8 == 32651591226032236 && codeS16 == 28429440805568590) {
338
+ store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart + 2), offsetof<this>("lastName"));
452
339
  srcStart += 4;
453
340
  keyStart = 0;
454
341
  break;
@@ -476,10 +363,10 @@ export class Response<T> {
476
363
  const code = load<u16>(srcStart);
477
364
  if (code == 44 || code == 125 || JSON.Util.isSpace(code)) {
478
365
  switch (<u32>keyEnd - <u32>keyStart) {
479
- case 8: {
480
- const code64 = load<u64>(keyStart);
481
- if ((isInteger<T | null>() || isFloat<T | null>()) && code64 == 27303570963497060) {
482
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
366
+ case 6: {
367
+ const code48 = load<u64>(keyStart) & 281474976710655;
368
+ if (code48 == 433798447201) {
369
+ store<i32>(changetype<usize>(out), JSON.__deserialize<i32>(lastIndex, srcStart), offsetof<this>("age"));
483
370
  srcStart += 2;
484
371
  keyStart = 0;
485
372
  break;
@@ -513,10 +400,49 @@ export class Response<T> {
513
400
  if (--depth == 0) {
514
401
  srcStart += 2;
515
402
  switch (<u32>keyEnd - <u32>keyStart) {
516
- case 8: {
517
- const code64 = load<u64>(keyStart);
518
- if (isDefined(out.__DESERIALIZE) && code64 == 27303570963497060) {
519
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
403
+ case 20: {
404
+ const codeS8 = load<u64>(keyStart, 0);
405
+ const codeS16 = load<u64>(keyStart, 8);
406
+ const codeS20 = load<u32>(keyStart, 16);
407
+ if (codeS8 == 32370111954878566 && codeS16 == 27303545189433460 && codeS20 == 6619245) {
408
+ store<string | null>(changetype<usize>(out), JSON.__deserialize<string | null>(lastIndex, srcStart), offsetof<this>("firstName"));
409
+ keyStart = 0;
410
+ break;
411
+ } else if (codeS8 == 32651591226032236 && codeS16 == 29555370777313345 && codeS20 == 6619254) {
412
+ store<Array<i32>>(changetype<usize>(out), JSON.__deserialize<Array<i32>>(lastIndex, srcStart), offsetof<this>("lastActive"));
413
+ keyStart = 0;
414
+ break;
415
+ } else if (codeS8 == 28429342022500457 && codeS16 == 29555310648164466 && codeS20 == 6553701) {
416
+ store<boolean>(changetype<usize>(out), JSON.__deserialize<boolean>(lastIndex, srcStart), offsetof<this>("isVerified"));
417
+ keyStart = 0;
418
+ break;
419
+ } else {
420
+ keyStart = 0;
421
+ break;
422
+ }
423
+ }
424
+
425
+ case 6: {
426
+ const code48 = load<u64>(keyStart) & 281474976710655;
427
+ if (code48 == 433798447201) {
428
+ store<i32>(changetype<usize>(out), JSON.__deserialize<i32>(lastIndex, srcStart), offsetof<this>("age"));
429
+ keyStart = 0;
430
+ break;
431
+ } else if (code48 == 493928513648) {
432
+ store<Vec3 | null>(changetype<usize>(out), JSON.__deserialize<Vec3 | null>(lastIndex, srcStart), offsetof<this>("pos"));
433
+ keyStart = 0;
434
+ break;
435
+ } else {
436
+ keyStart = 0;
437
+ break;
438
+ }
439
+ }
440
+
441
+ case 16: {
442
+ const codeS8 = load<u64>(keyStart, 0);
443
+ const codeS16 = load<u64>(keyStart, 8);
444
+ if (codeS8 == 32651591226032236 && codeS16 == 28429440805568590) {
445
+ store<string>(changetype<usize>(out), JSON.__deserialize<string>(lastIndex, srcStart), offsetof<this>("lastName"));
520
446
  keyStart = 0;
521
447
  break;
522
448
  } else {
@@ -548,10 +474,12 @@ export class Response<T> {
548
474
  if (--depth == 0) {
549
475
  srcStart += 2;
550
476
  switch (<u32>keyEnd - <u32>keyStart) {
551
- case 8: {
552
- const code64 = load<u64>(keyStart);
553
- if (isArray<T | null>() && code64 == 27303570963497060) {
554
- store<T | null>(changetype<usize>(out), JSON.__deserialize<T | null>(lastIndex, srcStart), offsetof<this>("data"));
477
+ case 20: {
478
+ const codeS8 = load<u64>(keyStart, 0);
479
+ const codeS16 = load<u64>(keyStart, 8);
480
+ const codeS20 = load<u32>(keyStart, 16);
481
+ if (codeS8 == 32651591226032236 && codeS16 == 29555370777313345 && codeS20 == 6619254) {
482
+ store<Array<i32>>(changetype<usize>(out), JSON.__deserialize<Array<i32>>(lastIndex, srcStart), offsetof<this>("lastActive"));
555
483
  keyStart = 0;
556
484
  break;
557
485
  } else {
@@ -574,10 +502,12 @@ export class Response<T> {
574
502
  if (load<u64>(srcStart) == 28429475166421108) {
575
503
  srcStart += 8;
576
504
  switch (<u32>keyEnd - <u32>keyStart) {
577
- case 8: {
578
- const code64 = load<u64>(keyStart);
579
- if (isBoolean<T | null>() && code64 == 27303570963497060) {
580
- store<boolean>(changetype<usize>(out), true, offsetof<this>("data"));
505
+ case 20: {
506
+ const codeS8 = load<u64>(keyStart, 0);
507
+ const codeS16 = load<u64>(keyStart, 8);
508
+ const codeS20 = load<u32>(keyStart, 16);
509
+ if (codeS8 == 28429342022500457 && codeS16 == 29555310648164466 && codeS20 == 6553701) {
510
+ store<boolean>(changetype<usize>(out), true, offsetof<this>("isVerified"));
581
511
  srcStart += 2;
582
512
  keyStart = 0;
583
513
  break;
@@ -600,10 +530,12 @@ export class Response<T> {
600
530
  if (load<u64>(srcStart, 2) == 28429466576093281) {
601
531
  srcStart += 10;
602
532
  switch (<u32>keyEnd - <u32>keyStart) {
603
- case 8: {
604
- const code64 = load<u64>(keyStart);
605
- if (isBoolean<T | null>() && code64 == 27303570963497060) {
606
- store<boolean>(changetype<usize>(out), false, offsetof<this>("data"));
533
+ case 20: {
534
+ const codeS8 = load<u64>(keyStart, 0);
535
+ const codeS16 = load<u64>(keyStart, 8);
536
+ const codeS20 = load<u32>(keyStart, 16);
537
+ if (codeS8 == 28429342022500457 && codeS16 == 29555310648164466 && codeS20 == 6553701) {
538
+ store<boolean>(changetype<usize>(out), false, offsetof<this>("isVerified"));
607
539
  srcStart += 2;
608
540
  keyStart = 0;
609
541
  break;
@@ -626,10 +558,26 @@ export class Response<T> {
626
558
  if (load<u64>(srcStart) == 30399761348886638) {
627
559
  srcStart += 8;
628
560
  switch (<u32>keyEnd - <u32>keyStart) {
629
- case 8: {
630
- const code64 = load<u64>(keyStart);
631
- if (isNullable<T | null>() && code64 == 27303570963497060) {
632
- store<usize>(changetype<usize>(out), 0, offsetof<this>("data"));
561
+ case 6: {
562
+ const code48 = load<u64>(keyStart) & 281474976710655;
563
+ if (code48 == 493928513648) {
564
+ store<usize>(changetype<usize>(out), 0, offsetof<this>("pos"));
565
+ srcStart += 2;
566
+ keyStart = 0;
567
+ break;
568
+ } else {
569
+ srcStart += 2;
570
+ keyStart = 0;
571
+ break;
572
+ }
573
+ }
574
+
575
+ case 20: {
576
+ const codeS8 = load<u64>(keyStart, 0);
577
+ const codeS16 = load<u64>(keyStart, 8);
578
+ const codeS20 = load<u32>(keyStart, 16);
579
+ if (codeS8 == 32370111954878566 && codeS16 == 27303545189433460 && codeS20 == 6619245) {
580
+ store<usize>(changetype<usize>(out), 0, offsetof<this>("firstName"));
633
581
  srcStart += 2;
634
582
  keyStart = 0;
635
583
  break;
@@ -655,6 +603,19 @@ export class Response<T> {
655
603
  return out;
656
604
  }
657
605
  }
658
- console.log((isManaged<PeopleData>() || isReference<PeopleData>()).toString());
659
- let deserialized = JSON.parse<Response<PeopleData>>('{"data":{"people":[]}}');
660
- console.log("Deserialized Node: " + JSON.stringify(deserialized));
606
+ const player: Player = {
607
+ firstName: "Jairus",
608
+ lastName: "Tanaka",
609
+ lastActive: [3, 9, 2025],
610
+ age: 18,
611
+ pos: {
612
+ x: 3.4,
613
+ y: 1.2,
614
+ z: 8.3,
615
+ },
616
+ isVerified: true,
617
+ };
618
+ const serialized = JSON.stringify<Player>(player);
619
+ const deserialized = JSON.parse<Player>(serialized);
620
+ console.log("Serialized " + serialized);
621
+ console.log("Deserialized " + JSON.stringify(deserialized));