File size: 3,909 Bytes
be5030f
1
{"version":3,"sources":["builder/binary.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAGrB,2CAA8C;AAC9C,qCAAyC;AACzC,wCAAkE;AAElE,cAAc;AACd,MAAa,aAA2B,SAAQ,8BAAmC;IAC/E,YAAY,IAAmC;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAa,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAW,UAAU;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,QAAQ,CAAC,KAAa,EAAE,KAAiB;QAC5C,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IACS,aAAa,CAAC,OAA4C,EAAE,aAAqB;QACvF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QACxD,IAAI,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAA6B,CAAC;QACrE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE;YAC5B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aACzB;iBAAM;gBACH,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM,IAAI,MAAM,CAAC;aACpB;SACJ;IACL,CAAC;CACJ;AA9BD,sCA8BC","file":"binary.js","sourcesContent":["// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements.  See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership.  The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License.  You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied.  See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\nimport { Binary } from '../type';\nimport { toUint8Array } from '../util/buffer';\nimport { BufferBuilder } from './buffer';\nimport { VariableWidthBuilder, BuilderOptions } from '../builder';\n\n/** @ignore */\nexport class BinaryBuilder<TNull = any> extends VariableWidthBuilder<Binary, TNull> {\n    constructor(opts: BuilderOptions<Binary, TNull>) {\n        super(opts);\n        this._values = new BufferBuilder(new Uint8Array(0));\n    }\n    public get byteLength(): number {\n        let size = this._pendingLength + (this.length * 4);\n        this._offsets && (size += this._offsets.byteLength);\n        this._values && (size += this._values.byteLength);\n        this._nulls && (size += this._nulls.byteLength);\n        return size;\n    }\n    public setValue(index: number, value: Uint8Array) {\n        return super.setValue(index, toUint8Array(value));\n    }\n    protected _flushPending(pending: Map<number, Uint8Array | undefined>, pendingLength: number) {\n        const offsets = this._offsets;\n        const data = this._values.reserve(pendingLength).buffer;\n        let index = 0, length = 0, offset = 0, value: Uint8Array | undefined;\n        for ([index, value] of pending) {\n            if (value === undefined) {\n                offsets.set(index, 0);\n            } else {\n                length = value.length;\n                data.set(value, offset);\n                offsets.set(index, length);\n                offset += length;\n            }\n        }\n    }\n}\n"]}