{"version":3,"sources":["visitor/toarray.ts"],"names":[],"mappings":"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","file":"toarray.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 { Data } from '../data';\nimport { Type } from '../enum';\nimport { Visitor } from '../visitor';\nimport { VectorType } from '../interfaces';\nimport { instance as iteratorVisitor } from './iterator';\nimport {\n DataType, Dictionary,\n Bool, Null, Utf8, Binary, Decimal, FixedSizeBinary, List, FixedSizeList, Map_, Struct,\n Float, Float16, Float32, Float64,\n Int, Uint8, Uint16, Uint32, Uint64, Int8, Int16, Int32, Int64,\n Date_, DateDay, DateMillisecond,\n Interval, IntervalDayTime, IntervalYearMonth,\n Time, TimeSecond, TimeMillisecond, TimeMicrosecond, TimeNanosecond,\n Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond,\n Union, DenseUnion, SparseUnion,\n} from '../type';\n\n/** @ignore */\nexport interface ToArrayVisitor extends Visitor {\n visit(node: T): T['TArray'];\n visitMany(nodes: T[]): T['TArray'][];\n getVisitFn(node: T): (vector: VectorType) => VectorType['TArray'];\n getVisitFn(node: VectorType | Data | T): (vector: VectorType) => VectorType['TArray'];\n visitNull (vector: VectorType): VectorType['TArray'];\n visitBool (vector: VectorType): VectorType['TArray'];\n visitInt (vector: VectorType): VectorType['TArray'];\n visitInt8 (vector: VectorType): VectorType['TArray'];\n visitInt16 (vector: VectorType): VectorType['TArray'];\n visitInt32 (vector: VectorType): VectorType['TArray'];\n visitInt64 (vector: VectorType): VectorType['TArray'];\n visitUint8 (vector: VectorType): VectorType['TArray'];\n visitUint16 (vector: VectorType): VectorType['TArray'];\n visitUint32 (vector: VectorType): VectorType['TArray'];\n visitUint64 (vector: VectorType): VectorType['TArray'];\n visitFloat (vector: VectorType): VectorType['TArray'];\n visitFloat16 (vector: VectorType): VectorType['TArray'];\n visitFloat32 (vector: VectorType): VectorType['TArray'];\n visitFloat64 (vector: VectorType): VectorType['TArray'];\n visitUtf8 (vector: VectorType): VectorType['TArray'];\n visitBinary (vector: VectorType): VectorType['TArray'];\n visitFixedSizeBinary (vector: VectorType): VectorType['TArray'];\n visitDate (vector: VectorType): VectorType['TArray'];\n visitDateDay (vector: VectorType): VectorType['TArray'];\n visitDateMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestamp (vector: VectorType): VectorType['TArray'];\n visitTimestampSecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimestampMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimestampNanosecond (vector: VectorType): VectorType['TArray'];\n visitTime (vector: VectorType): VectorType['TArray'];\n visitTimeSecond (vector: VectorType): VectorType['TArray'];\n visitTimeMillisecond (vector: VectorType): VectorType['TArray'];\n visitTimeMicrosecond (vector: VectorType): VectorType['TArray'];\n visitTimeNanosecond (vector: VectorType): VectorType['TArray'];\n visitDecimal (vector: VectorType): VectorType['TArray'];\n visitList > (vector: VectorType): VectorType['TArray'];\n visitStruct (vector: VectorType): VectorType['TArray'];\n visitUnion (vector: VectorType): VectorType['TArray'];\n visitDenseUnion (vector: VectorType): VectorType['TArray'];\n visitSparseUnion (vector: VectorType): VectorType['TArray'];\n visitDictionary > (vector: VectorType): VectorType['TArray'];\n visitInterval (vector: VectorType): VectorType['TArray'];\n visitIntervalDayTime (vector: VectorType): VectorType['TArray'];\n visitIntervalYearMonth (vector: VectorType): VectorType['TArray'];\n visitFixedSizeList > (vector: VectorType): VectorType['TArray'];\n visitMap (vector: VectorType): VectorType['TArray'];\n}\n\n/** @ignore */\nexport class ToArrayVisitor extends Visitor {}\n\n/** @ignore */\nfunction arrayOfVector(vector: VectorType): T['TArray'] {\n\n const { type, length, stride } = vector;\n\n // Fast case, return subarray if possible\n switch (type.typeId) {\n case Type.Int:\n case Type.Float: case Type.Decimal:\n case Type.Time: case Type.Timestamp:\n return vector.values.subarray(0, length * stride);\n }\n\n // Otherwise if not primitive, slow copy\n return [...iteratorVisitor.visit(vector)] as T['TArray'];\n}\n\nToArrayVisitor.prototype.visitNull = arrayOfVector;\nToArrayVisitor.prototype.visitBool = arrayOfVector;\nToArrayVisitor.prototype.visitInt = arrayOfVector;\nToArrayVisitor.prototype.visitInt8 = arrayOfVector;\nToArrayVisitor.prototype.visitInt16 = arrayOfVector;\nToArrayVisitor.prototype.visitInt32 = arrayOfVector;\nToArrayVisitor.prototype.visitInt64 = arrayOfVector;\nToArrayVisitor.prototype.visitUint8 = arrayOfVector;\nToArrayVisitor.prototype.visitUint16 = arrayOfVector;\nToArrayVisitor.prototype.visitUint32 = arrayOfVector;\nToArrayVisitor.prototype.visitUint64 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat = arrayOfVector;\nToArrayVisitor.prototype.visitFloat16 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat32 = arrayOfVector;\nToArrayVisitor.prototype.visitFloat64 = arrayOfVector;\nToArrayVisitor.prototype.visitUtf8 = arrayOfVector;\nToArrayVisitor.prototype.visitBinary = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeBinary = arrayOfVector;\nToArrayVisitor.prototype.visitDate = arrayOfVector;\nToArrayVisitor.prototype.visitDateDay = arrayOfVector;\nToArrayVisitor.prototype.visitDateMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestamp = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimestampNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTime = arrayOfVector;\nToArrayVisitor.prototype.visitTimeSecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMillisecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeMicrosecond = arrayOfVector;\nToArrayVisitor.prototype.visitTimeNanosecond = arrayOfVector;\nToArrayVisitor.prototype.visitDecimal = arrayOfVector;\nToArrayVisitor.prototype.visitList = arrayOfVector;\nToArrayVisitor.prototype.visitStruct = arrayOfVector;\nToArrayVisitor.prototype.visitUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDenseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitSparseUnion = arrayOfVector;\nToArrayVisitor.prototype.visitDictionary = arrayOfVector;\nToArrayVisitor.prototype.visitInterval = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalDayTime = arrayOfVector;\nToArrayVisitor.prototype.visitIntervalYearMonth = arrayOfVector;\nToArrayVisitor.prototype.visitFixedSizeList = arrayOfVector;\nToArrayVisitor.prototype.visitMap = arrayOfVector;\n\n/** @ignore */\nexport const instance = new ToArrayVisitor();\n"]}