bluzelle-binary-codec
Version:
bluzelle binary codec
37 lines (33 loc) • 1.18 kB
JavaScript
var makeClass = require('../utils/make-class');var _require =
require('./serialized-type'),ensureArrayLikeIs = _require.ensureArrayLikeIs,SerializedType = _require.SerializedType;var _require2 =
require('../enums'),Field = _require2.Field;var _require3 =
require('./st-object'),STObject = _require3.STObject;var
ArrayEndMarker = Field.ArrayEndMarker;
var STArray = makeClass({
mixins: SerializedType,
inherits: Array,
statics: {
fromParser: function fromParser(parser) {
var array = new STArray();
while (!parser.end()) {
var field = parser.readField();
if (field === ArrayEndMarker) {
break;
}
var outer = new STObject();
outer[field] = parser.readFieldValue(field);
array.push(outer);
}
return array;
},
from: function from(value) {
return ensureArrayLikeIs(STArray, value).withChildren(STObject);
} },
toJSON: function toJSON() {
return this.map(function (v) {return v.toJSON();});
},
toBytesSink: function toBytesSink(sink) {
this.forEach(function (so) {return so.toBytesSink(sink);});
} });
module.exports = {
STArray: STArray };
;