Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
JairusSW committed Jun 28, 2024
1 parent 8b88d72 commit 3d8f297
Show file tree
Hide file tree
Showing 34 changed files with 18,865 additions and 12,926 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,4 @@ package-lock.json
logs
as-tral
*.lockb
*.lockb
.vscode/
6 changes: 3 additions & 3 deletions assembly/deserialize/array.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { deserializeMapArray } from "./array/map";
import { deserializeObjectArray } from "./array/object";
import { deserializeStringArray } from "./array/string";

// @ts-ignore: Decorator
// @ts-ignore: Decorator valid here
export function deserializeArray<T extends unknown[]>(data: string): T {
if (isString<valueof<T>>()) {
return <T>deserializeStringArray(data);
Expand All @@ -31,7 +31,7 @@ export function deserializeArray<T extends unknown[]>(data: string): T {
if (isDefined(type.__DESERIALIZE)) {
return deserializeObjectArray<T>(data);
}
} else {
ERROR("Could not parse array of type " + nameof<T>() + "!");
}

throw new Error("Could not parse array of type " + nameof<T>() + "!");
}
4 changes: 2 additions & 2 deletions assembly/deserialize/array/array.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { BRACKET_LEFT, BRACKET_RIGHT } from "../../chars";
import { JSON } from "../..";
import { unsafeCharCodeAt } from "../../util";

// @ts-ignore: Decorator
export function deserializeArrayArray<T extends unknown[][]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeArrayArray<T extends unknown[][]>(data: string): T {
const result = instantiate<T>();
let lastPos = 0;
let depth = 0;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/bool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { CHAR_E, CHAR_F, CHAR_T } from "../../chars";
import { unsafeCharCodeAt } from "../../util";
import { deserializeBoolean } from "../bool";

// @ts-ignore: Decorator
export function deserializeBooleanArray<T extends boolean[]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeBooleanArray<T extends boolean[]>(data: string): T {
const result = instantiate<T>();
let lastPos = 1;
for (let i = 1; i < data.length - 1; i++) {
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/float.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { unsafeCharCodeAt } from "../../util";
import { COMMA, BRACKET_RIGHT } from "../../chars";
import { deserializeFloat } from "../float";

// @ts-ignore: Decorator
export function deserializeFloatArray<T extends number[]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeFloatArray<T extends number[]>(data: string): T {
const result = instantiate<T>();
let lastPos = 0;
let i = 1;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/integer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { unsafeCharCodeAt } from "../../util";
import { COMMA, BRACKET_RIGHT } from "../../chars";
import { deserializeInteger } from "../integer";

// @ts-ignore: Decorator
export function deserializeIntegerArray<T extends number[]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeIntegerArray<T extends number[]>(data: string): T {
const result = instantiate<T>();
let lastPos = 0;
let i = 1;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { BRACE_LEFT, BRACE_RIGHT } from "../../chars";
import { JSON } from "../..";
import { unsafeCharCodeAt } from "../../util";

// @ts-ignore: Decorator
export function deserializeMapArray<T extends unknown[]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeMapArray<T extends unknown[]>(data: string): T {
const result = instantiate<T>();
let lastPos: u32 = 1;
let depth: u32 = 0;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/object.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { BRACE_LEFT, BRACE_RIGHT } from "../../chars";
import { JSON } from "../..";
import { unsafeCharCodeAt } from "../../util";

// @ts-ignore: Decorator
export function deserializeObjectArray<T extends unknown[]>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeObjectArray<T extends unknown[]>(data: string): T {
const result = instantiate<T>();
let lastPos: u32 = 1;
let depth: u32 = 0;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/array/string.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { BACK_SLASH, QUOTE } from "../../chars";
import { unsafeCharCodeAt } from "../../util";
import { deserializeString } from "../string";

// @ts-ignore: Decorator
export function deserializeStringArray(data: string): string[] {
// @ts-ignore: Decorator valid here
@inline export function deserializeStringArray(data: string): string[] {
const result: string[] = [];
let lastPos = 0;
let instr = false;
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/bool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import { unsafeCharCodeAt } from "../util";
* @param data data to parse
* @returns boolean
*/
// @ts-ignore: Decorator
export function deserializeBoolean(data: string, start: i32 = 0, end: i32 = 0): boolean {
// @ts-ignore: Decorator valid here
@inline export function deserializeBoolean(data: string, start: i32 = 0, end: i32 = 0): boolean {
if (!end) end = data.length;
const len = end - start;
const ptr = changetype<usize>(data) + <usize>(start << 1);
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/date.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @ts-ignore
export function deserializeDate(dateTimeString: string): Date {
// @ts-ignore: Decorator valid here
@inline export function deserializeDate(dateTimeString: string): Date {
// Use AssemblyScript's date parser
const d = Date.fromString(dateTimeString);

Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/float.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @ts-ignore: Decorator
export function deserializeFloat<T>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeFloat<T>(data: string): T {
// @ts-ignore
const type: T = 0;
// @ts-ignore
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/integer.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { snip_fast } from "../util";

// @ts-ignore: Decorator
export function deserializeInteger<T>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeInteger<T>(data: string): T {
// @ts-ignore
return snip_fast<T>(data);
}
4 changes: 2 additions & 2 deletions assembly/deserialize/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ import { isSpace } from "util/string";
import { deserializeInteger } from "./integer";
import { deserializeFloat } from "./float";

// @ts-ignore: Decorator
export function deserializeMap<T extends Map>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeMap<T extends Map>(data: string): T {

const map: nonnull<T> = changetype<nonnull<T>>(
__new(offsetof<nonnull<T>>(), idof<nonnull<T>>())
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/mpz.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import { MpZ } from "@hypercubed/as-mpz";
* @param data data to parse
* @returns MpZ
*/
// @ts-ignore: Decorator
export function deserializeMpZ(data: string, start: i32 = 0, end: i32 = 0): MpZ {
// @ts-ignore: Decorator valid here
@inline export function deserializeMpZ(data: string, start: i32 = 0, end: i32 = 0): MpZ {
if (!end) end = data.length;
return MpZ.from(data.slice(start, end));
}
6 changes: 3 additions & 3 deletions assembly/deserialize/object.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { containsCodePoint, unsafeCharCodeAt } from "../util";
import { unsafeCharCodeAt } from "../util";
import { CHAR_A, BACK_SLASH, COMMA, CHAR_E, CHAR_F, CHAR_L, BRACE_LEFT, BRACKET_LEFT, CHAR_N, QUOTE, CHAR_R, BRACE_RIGHT, BRACKET_RIGHT, CHAR_S, CHAR_T, CHAR_U } from "../chars";
import { isSpace } from "util/string";

// @ts-ignore: Decorator
export function deserializeObject<T>(data: string): T {
// @ts-ignore: Decorator valid here
@inline export function deserializeObject<T>(data: string): T {
const schema: nonnull<T> = changetype<nonnull<T>>(
__new(offsetof<nonnull<T>>(), idof<nonnull<T>>())
);
Expand Down
4 changes: 2 additions & 2 deletions assembly/deserialize/string.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ import {
import { Sink } from "../sink";
import { unsafeCharCodeAt } from "../util";

// @ts-ignore: Decorator
export function deserializeString(data: string, start: i32 = 0, end: i32 = 0): string {
// @ts-ignore: Decorator valid here
@inline export function deserializeString(data: string, start: i32 = 0, end: i32 = 0): string {
end = end || data.length - 1;
let result = Sink.withCapacity(end - start - 1);
let last = start + 1;
Expand Down
4 changes: 2 additions & 2 deletions assembly/serialize/array.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import {
import { Sink } from "../sink";
import { serializeString } from "./string";

// @ts-ignore
export function serializeArray<T extends any[]>(data: T): string {
// @ts-ignore: Decorator valid here
@inline export function serializeArray<T extends any[]>(data: T): string {
// @ts-ignore
if (data.length == 0) {
return EMPTY_BRACKET_WORD;
Expand Down
4 changes: 2 additions & 2 deletions assembly/serialize/bool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* @param data data to serialize
* @returns string
*/
// @ts-ignore
export function serializeBool(data: bool): string {
// @ts-ignore: Decorator valid here
@inline export function serializeBool(data: bool): string {
return data ? "true" : "false";
}
4 changes: 2 additions & 2 deletions assembly/serialize/date.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @ts-ignore
export function serializeDate(data: Date): string {
// @ts-ignore: Decorator valid here
@inline export function serializeDate(data: Date): string {
return `"${data.toISOString()}"`
}
4 changes: 2 additions & 2 deletions assembly/serialize/float.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// @ts-ignore
export function serializeFloat<T extends number>(data: T): string {
// @ts-ignore: Decorator valid here
@inline export function serializeFloat<T extends number>(data: T): string {
return data.toString();
}
4 changes: 2 additions & 2 deletions assembly/serialize/integer.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @ts-ignore
export function serializeInteger<T extends number>(data: T): string {
// @ts-ignore: Decorator valid here
@inline export function serializeInteger<T extends number>(data: T): string {
// I have a much faster implementation of itoa that I will port over later. Its ~4x faster
return data.toString();
}
4 changes: 2 additions & 2 deletions assembly/serialize/map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { JSON } from "..";
import { Sink } from "../sink";
import { serializeString } from "./string";

// @ts-ignore
export function serializeMap<T extends Map<any, any>>(data: T): string {
// @ts-ignore: Decorator valid here
@inline export function serializeMap<T extends Map<any, any>>(data: T): string {
let result = Sink.fromString(BRACE_LEFT_WORD);
let keys = data.keys();
let values = data.values();
Expand Down
4 changes: 2 additions & 2 deletions assembly/serialize/mpz.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { MpZ } from "@hypercubed/as-mpz";

// @ts-ignore
export function serializeMpZ(data: MpZ): string {
// @ts-ignore: Decorator valid here
@inline export function serializeMpZ(data: MpZ): string {
return data.toString();
}
4 changes: 2 additions & 2 deletions assembly/serialize/object.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
interface GeneratedInterface {
__SERIALIZE(): string;
}
// @ts-ignore
export function serializeObject<T extends GeneratedInterface>(data: T): string {
// @ts-ignore: Decoraor valid here
@inline export function serializeObject<T extends GeneratedInterface>(data: T): string {
return changetype<nonnull<T>>(data).__SERIALIZE();
}
4 changes: 2 additions & 2 deletions assembly/serialize/string.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import {
import { Sink } from "../sink";
import { unsafeCharCodeAt } from "../util";

// @ts-ignore: Decorator
export function serializeString(data: string): string {
// @ts-ignore: Decorator valid here
@inline export function serializeString(data: string): string {
if (data.length === 0) {
return QUOTE_WORD + QUOTE_WORD;
}
Expand Down
6 changes: 3 additions & 3 deletions assembly/serialize/unknown.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { JSON } from "..";
import { Sink } from "../sink";
import { __atoi_fast } from "../util";
import { serializeUnknownArray } from "./array/unknown";
import { serializeBool } from "./bool";
import { serializeFloat } from "./float";
import { serializeInteger } from "./integer";
Expand All @@ -13,7 +12,8 @@ import { serializeString } from "./string";
* @param data - The JSON.Value to be serialized.
* @returns The serialized result.
*/
export function serializeUnknown(data: JSON.Value): string {
// @ts-ignore: Decorator valid here
@inline export function serializeUnknown(data: JSON.Value): string {
const type = data.type;
switch (type) {
case JSON.Types.String: {
Expand Down Expand Up @@ -41,5 +41,5 @@ export function serializeUnknown(data: JSON.Value): string {
return serializeFloat(data.get<f64>());
}
}
return serializeUnknownArray(data.get<JSON.Value[]>());
return "ERROR"//serializeUnknownArray(data.get<JSON.Value[]>());
}
31 changes: 22 additions & 9 deletions assembly/test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
import { JSON } from ".";
import { Vec3 as Vec3a } from "./types";
import { Vec3 as Vec3b } from "./types";
export function add(a: i32 = 1, b: i32 = 2, c: i32 = 3): i32 {
return a + b + c;
}

const veca = new Vec3a();
const vecb = new Vec3b();
// add() Should transform to

const serializeda = JSON.stringify(veca);
console.log("SERIALIZED-A: " + serializeda);
// if we call the GraphQL, say add(a: 2, c: 9), b is not defined--this is not possible.
// So, in that case, we set the bits in this order
// 0b1010000000000000
// abcdefghijklmnop
// |||
// 2|9
// 2 <--- set to default since toggle is 0
// Thus, that gives us the following arguments:
// a: 2, b: 2, c: 9

const serialziedb = JSON.stringify(vecb);
console.log("SERIALIZED-B: " + serialziedb);
export function _add(a: i32, b: i32, c: i32, _mask: u64): i32 {
if ((_mask & 1) == 0) a = 1;
if ((_mask >> 1 & 1) == 0) b = 2;
if ((_mask >> 2 & 1) == 0) c = 3;
return a + b + c;
}

console.log("add(1,2,3: " + add(1,2,3).toString());
console.log("add(2,nil,9): " + _add(2,0,9,0b101).toString());
Binary file modified build/test.spec.wasm
Binary file not shown.
2 changes: 1 addition & 1 deletion build/test.spec.wasm.map

Large diffs are not rendered by default.

Loading

0 comments on commit 3d8f297

Please sign in to comment.