in js/src/visitor.ts [75:133]
function getVisitFnByTypeId(visitor: Visitor, dtype: Type, throwIfNotFound = true) {
let fn: any = null;
switch (dtype) {
case Type.Null: fn = visitor.visitNull; break;
case Type.Bool: fn = visitor.visitBool; break;
case Type.Int: fn = visitor.visitInt; break;
case Type.Int8: fn = visitor.visitInt8 || visitor.visitInt; break;
case Type.Int16: fn = visitor.visitInt16 || visitor.visitInt; break;
case Type.Int32: fn = visitor.visitInt32 || visitor.visitInt; break;
case Type.Int64: fn = visitor.visitInt64 || visitor.visitInt; break;
case Type.Uint8: fn = visitor.visitUint8 || visitor.visitInt; break;
case Type.Uint16: fn = visitor.visitUint16 || visitor.visitInt; break;
case Type.Uint32: fn = visitor.visitUint32 || visitor.visitInt; break;
case Type.Uint64: fn = visitor.visitUint64 || visitor.visitInt; break;
case Type.Float: fn = visitor.visitFloat; break;
case Type.Float16: fn = visitor.visitFloat16 || visitor.visitFloat; break;
case Type.Float32: fn = visitor.visitFloat32 || visitor.visitFloat; break;
case Type.Float64: fn = visitor.visitFloat64 || visitor.visitFloat; break;
case Type.Utf8: fn = visitor.visitUtf8; break;
case Type.LargeUtf8: fn = visitor.visitLargeUtf8; break;
case Type.Binary: fn = visitor.visitBinary; break;
case Type.LargeBinary: fn = visitor.visitLargeBinary; break;
case Type.FixedSizeBinary: fn = visitor.visitFixedSizeBinary; break;
case Type.Date: fn = visitor.visitDate; break;
case Type.DateDay: fn = visitor.visitDateDay || visitor.visitDate; break;
case Type.DateMillisecond: fn = visitor.visitDateMillisecond || visitor.visitDate; break;
case Type.Timestamp: fn = visitor.visitTimestamp; break;
case Type.TimestampSecond: fn = visitor.visitTimestampSecond || visitor.visitTimestamp; break;
case Type.TimestampMillisecond: fn = visitor.visitTimestampMillisecond || visitor.visitTimestamp; break;
case Type.TimestampMicrosecond: fn = visitor.visitTimestampMicrosecond || visitor.visitTimestamp; break;
case Type.TimestampNanosecond: fn = visitor.visitTimestampNanosecond || visitor.visitTimestamp; break;
case Type.Time: fn = visitor.visitTime; break;
case Type.TimeSecond: fn = visitor.visitTimeSecond || visitor.visitTime; break;
case Type.TimeMillisecond: fn = visitor.visitTimeMillisecond || visitor.visitTime; break;
case Type.TimeMicrosecond: fn = visitor.visitTimeMicrosecond || visitor.visitTime; break;
case Type.TimeNanosecond: fn = visitor.visitTimeNanosecond || visitor.visitTime; break;
case Type.Decimal: fn = visitor.visitDecimal; break;
case Type.List: fn = visitor.visitList; break;
case Type.Struct: fn = visitor.visitStruct; break;
case Type.Union: fn = visitor.visitUnion; break;
case Type.DenseUnion: fn = visitor.visitDenseUnion || visitor.visitUnion; break;
case Type.SparseUnion: fn = visitor.visitSparseUnion || visitor.visitUnion; break;
case Type.Dictionary: fn = visitor.visitDictionary; break;
case Type.Interval: fn = visitor.visitInterval; break;
case Type.IntervalDayTime: fn = visitor.visitIntervalDayTime || visitor.visitInterval; break;
case Type.IntervalYearMonth: fn = visitor.visitIntervalYearMonth || visitor.visitInterval; break;
case Type.IntervalMonthDayNano: fn = visitor.visitIntervalMonthDayNano || visitor.visitInterval; break;
case Type.Duration: fn = visitor.visitDuration; break;
case Type.DurationSecond: fn = visitor.visitDurationSecond || visitor.visitDuration; break;
case Type.DurationMillisecond: fn = visitor.visitDurationMillisecond || visitor.visitDuration; break;
case Type.DurationMicrosecond: fn = visitor.visitDurationMicrosecond || visitor.visitDuration; break;
case Type.DurationNanosecond: fn = visitor.visitDurationNanosecond || visitor.visitDuration; break;
case Type.FixedSizeList: fn = visitor.visitFixedSizeList; break;
case Type.Map: fn = visitor.visitMap; break;
}
if (typeof fn === 'function') return fn;
if (!throwIfNotFound) return () => null;
throw new Error(`Unrecognized type '${Type[dtype]}'`);
}