diff --git a/assembly/serialize/simple/arbitrary.ts b/assembly/serialize/simple/arbitrary.ts index cb010a8..188d671 100644 --- a/assembly/serialize/simple/arbitrary.ts +++ b/assembly/serialize/simple/arbitrary.ts @@ -4,27 +4,27 @@ import { serializeBool } from "./bool"; import { serializeInteger } from "./integer"; import { serializeString } from "./string"; -export function serializeArbitrary(src: JSON.Value, staticSize: bool = false): void { +export function serializeArbitrary(src: JSON.Value): void { switch (src.type) { case JSON.Types.U8: - serializeInteger(src.get(), staticSize); + serializeInteger(src.get()); break; case JSON.Types.U16: - serializeInteger(src.get(), staticSize); + serializeInteger(src.get()); break; case JSON.Types.U32: - serializeInteger(src.get(), staticSize); + serializeInteger(src.get()); break; case JSON.Types.U64: - serializeInteger(src.get(), staticSize); + serializeInteger(src.get()); break; case JSON.Types.String: - serializeString(src.get(), staticSize); + serializeString(src.get()); break; case JSON.Types.Bool: - serializeBool(src.get(), staticSize); + serializeBool(src.get()); case JSON.Types.Array: { - serializeArray(src.get(), staticSize); + serializeArray(src.get()); break; } default: { diff --git a/assembly/serialize/simple/array.ts b/assembly/serialize/simple/array.ts index b2d898a..a65b118 100644 --- a/assembly/serialize/simple/array.ts +++ b/assembly/serialize/simple/array.ts @@ -2,11 +2,11 @@ import { bs } from "as-bs"; import { COMMA, BRACKET_RIGHT, BRACKET_LEFT } from "../../custom/chars"; import { JSON } from "../.."; -export function serializeArray(src: T, staticSize: bool = false): void { +export function serializeArray(src: T): void { const srcSize = load(changetype(src), offsetof("byteLength")); if (srcSize == 0) { - if (!staticSize) bs.ensureSize(4); + bs.ensureSize(4); store(bs.offset, 6094939); bs.offset += 4; return; @@ -14,9 +14,8 @@ export function serializeArray(src: T, staticSize: bool = false let srcPtr = src.dataStart; const srcEnd = srcPtr + srcSize - sizeof>(); - // if (!bs.buffer) bs.setBuffer(__new(srcSize << 3, idof())); - // else - if (!staticSize) bs.ensureSize(srcSize << 3); + + bs.ensureSize(srcSize << 3); store(bs.offset, BRACKET_LEFT); bs.offset += 2; @@ -24,7 +23,7 @@ export function serializeArray(src: T, staticSize: bool = false while (srcPtr < srcEnd) { const block = load>(srcPtr); JSON.__serialize>(block); - if (!staticSize) bs.ensureSize(2); + bs.ensureSize(2); store(bs.offset, COMMA); bs.offset += 2; srcPtr += sizeof(); @@ -32,7 +31,7 @@ export function serializeArray(src: T, staticSize: bool = false const lastBlock = load>(srcPtr); JSON.__serialize>(lastBlock); - if (!staticSize) bs.ensureSize(2); + bs.ensureSize(2); store(bs.offset, BRACKET_RIGHT); bs.offset += 2; } diff --git a/assembly/serialize/simple/bool.ts b/assembly/serialize/simple/bool.ts index ae01098..633eba5 100644 --- a/assembly/serialize/simple/bool.ts +++ b/assembly/serialize/simple/bool.ts @@ -5,13 +5,13 @@ import { bs } from "as-bs"; * @param data data to serialize * @returns void */ -export function serializeBool(data: bool, staticSize: bool = false): void { +export function serializeBool(data: bool): void { if (data == true) { - if (!staticSize) bs.ensureSize(8); + bs.ensureSize(8); store(bs.offset, 28429475166421108); bs.offset += 8; } else { - if (!staticSize) bs.ensureSize(10); + bs.ensureSize(10); store(bs.offset, 32370086184550502); store(bs.offset, 101, 8); bs.offset += 10; diff --git a/assembly/serialize/simple/date.ts b/assembly/serialize/simple/date.ts index fe3753e..91be907 100644 --- a/assembly/serialize/simple/date.ts +++ b/assembly/serialize/simple/date.ts @@ -2,10 +2,10 @@ import { bs } from "as-bs"; import { QUOTE } from "../../custom/chars"; import { bytes } from "../../util/bytes"; -export function serializeDate(src: Date, staticSize: bool = false): void { +export function serializeDate(src: Date): void { const data = src.toISOString(); const dataSize = bytes(data); - if (!staticSize) bs.ensureSize(dataSize + 4); + bs.ensureSize(dataSize + 4); store(bs.offset, QUOTE); memory.copy(bs.offset + 2, changetype(data), dataSize); store(bs.offset + dataSize, QUOTE, 2); diff --git a/assembly/serialize/simple/float.ts b/assembly/serialize/simple/float.ts index 40e8315..054b7bc 100644 --- a/assembly/serialize/simple/float.ts +++ b/assembly/serialize/simple/float.ts @@ -1,7 +1,7 @@ import { dtoa_buffered } from "util/number"; import { bs } from "as-bs"; -export function serializeFloat(data: T, staticSize: bool = false): void { - if (!staticSize) bs.ensureSize(64); +export function serializeFloat(data: T): void { + bs.ensureSize(64); bs.offset += dtoa_buffered(bs.offset, data) << 1; } diff --git a/assembly/serialize/simple/integer.ts b/assembly/serialize/simple/integer.ts index 1566d08..47b4b3c 100644 --- a/assembly/serialize/simple/integer.ts +++ b/assembly/serialize/simple/integer.ts @@ -2,6 +2,6 @@ import { itoa_buffered } from "util/number"; import { bs } from "as-bs"; export function serializeInteger(data: T): void { - // bs.ensureSize(sizeof() << 3); + bs.ensureSize(sizeof() << 3); bs.offset += itoa_buffered(bs.offset, data) << 1; } diff --git a/assembly/serialize/simple/map.ts b/assembly/serialize/simple/map.ts index b667e51..c76619c 100644 --- a/assembly/serialize/simple/map.ts +++ b/assembly/serialize/simple/map.ts @@ -1,12 +1,13 @@ +import { JSON } from "../.."; import { BRACE_LEFT, BRACE_RIGHT, COLON, COMMA } from "../../custom/chars"; import { bs } from "as-bs"; -export function serializeMap>(src: T, staticSize: bool = false): void { +export function serializeMap>(src: T): void { const srcSize = src.size; const srcEnd = srcSize - 1; - if (!srcSize) { - if (!staticSize) bs.ensureSize(4); + if (srcSize == 0) { + bs.ensureSize(4); store(bs.offset, 8192123); bs.offset += 4; return; @@ -15,28 +16,28 @@ export function serializeMap>(src: T, staticSize: bool = let keys = src.keys(); let values = src.values(); - if (!staticSize) bs.ensureSize(srcSize << 3); // This needs to be predicted better + bs.ensureSize(srcSize << 3); // This needs to be predicted better store(bs.offset, BRACE_LEFT); bs.offset += 2; for (let i = 0; i < srcEnd; i++) { - __serialize(unchecked(keys[i])); - if (!staticSize) bs.ensureSize(2); + JSON.__serialize(unchecked(keys[i])); + bs.ensureSize(2); store(bs.offset, COLON); bs.offset += 2; - __serialize(unchecked(values[i])); - if (!staticSize) bs.ensureSize(2); + JSON.__serialize(unchecked(values[i])); + bs.ensureSize(2); store(bs.offset, COMMA); bs.offset += 2; } - __serialize(unchecked(keys[srcEnd])); - if (!staticSize) bs.ensureSize(2); + JSON.__serialize(unchecked(keys[srcEnd])); + bs.ensureSize(2); store(bs.offset, COLON); bs.offset += 2; - __serialize(unchecked(values[srcEnd])); - if (!staticSize) bs.ensureSize(2); + JSON.__serialize(unchecked(values[srcEnd])); + bs.ensureSize(2); store(bs.offset, BRACE_RIGHT); bs.offset += 2; } diff --git a/assembly/serialize/simple/object.ts b/assembly/serialize/simple/object.ts index b1885c3..27d4b60 100644 --- a/assembly/serialize/simple/object.ts +++ b/assembly/serialize/simple/object.ts @@ -1,7 +1,7 @@ interface GeneratedInterface { - __SERIALIZE(ptr: usize, staticSize: bool): string; + __SERIALIZE(ptr: usize): string; } -export function serializeObject(data: T, staticSize: bool): void { - changetype>(data).__SERIALIZE(changetype(data), staticSize); +export function serializeObject(data: T): void { + changetype>(data).__SERIALIZE(changetype(data)); } diff --git a/assembly/types.ts b/assembly/types.ts index 4f7e63c..e69de29 100644 --- a/assembly/types.ts +++ b/assembly/types.ts @@ -1,14 +0,0 @@ - -@json -export class VecBase { - base: i32 = 0; - - @inline __ALLOCATE(): void { - bs.ensureSize(4); - } - - @inline __SERIALIZE(ptr: usize, staticSize: bool): void { - store(bs.offset, 8192123); - bs.offset += 4; - } -}