import { OBJECT, TOTAL_OVERHEAD } from "rt/common"; import { JSON } from "../.."; export { serializeArrayBufferUnsafe, serializeTypedArray, } from "../naive/typedarray"; import { serializeArrayBufferUnsafe, serializeTypedArray, } from "../naive/typedarray"; export function serializeDynamic(type: u16, data: usize): void { if (type == JSON.Types.ArrayBuffer) { serializeArrayBufferUnsafe( data, changetype(data - TOTAL_OVERHEAD).rtSize, ); } else if (type == JSON.Types.TypedArray) { const id = changetype(data - TOTAL_OVERHEAD).rtId; if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray( changetype(data), ); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (id == idof()) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Int8Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Uint8Array) { serializeTypedArray(changetype(data)); } else if ( changetype(data) instanceof Uint8ClampedArray ) { serializeTypedArray( changetype(data), ); } else if (changetype(data) instanceof Int16Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Uint16Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Int32Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Uint32Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Int64Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Uint64Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Float32Array) { serializeTypedArray(changetype(data)); } else if (changetype(data) instanceof Float64Array) { serializeTypedArray(changetype(data)); } else { throw new Error("Unsupported typed array in JSON.Value"); } } }