1234567891011121314151617181920212223242526272829303132333435363738 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- */
- "use strict";
- /** @typedef {import("./ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
- /** @typedef {import("./ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
- class ArraySerializer {
- /**
- * @template T
- * @param {T[]} array array
- * @param {ObjectSerializerContext} context context
- */
- serialize(array, context) {
- context.write(array.length);
- for (const item of array) context.write(item);
- }
- /**
- * @template T
- * @param {ObjectDeserializerContext} context context
- * @returns {T[]} array
- */
- deserialize(context) {
- /** @type {number} */
- const length = context.read();
- /** @type {T[]} */
- const array = [];
- for (let i = 0; i < length; i++) {
- array.push(context.read());
- }
- return array;
- }
- }
- module.exports = ArraySerializer;
|