@brimdata/zealot
Version:
The Javascript Client for Zed Lakes
53 lines (52 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "TypeMap", {
enumerable: true,
get: ()=>TypeMap
});
const _isNull = require("../utils/is-null");
const _map = require("../values/map");
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
class TypeMap {
static stringify(keyType, valType) {
return `|{` + keyType.toString() + ":" + valType.toString() + "}|";
}
create(value, stream) {
return new _map.ZedMap(this, (0, _isNull.isNull)(value) ? null : new Map(value.map((entry)=>[
this.keyType.create(entry[0], stream),
this.valType.create(entry[1], stream)
])));
}
serialize(stream) {
return {
kind: "map",
key_type: stream.encodeType(this.keyType),
val_type: stream.encodeType(this.valType)
};
}
toString() {
return "|{" + this.keyType.toString() + ":" + this.valType.toString() + "}|";
}
constructor(keyType, valType){
_defineProperty(this, "keyType", void 0);
_defineProperty(this, "valType", void 0);
_defineProperty(this, "kind", void 0);
this.keyType = keyType;
this.valType = valType;
this.kind = "union";
}
}