func read2(a *lldb.Allocator, dst []interface{}, h int64, cols ...*col) (data []interface{}, err error) { b, err := a.Get(nil, h) if err != nil { return } rec, err := lldb.DecodeScalars(b) if err != nil { return } for _, col := range cols { i := col.index + 2 switch col.typ { case 0: case qBool: case qComplex64: rec[i] = complex64(rec[i].(complex128)) case qComplex128: case qFloat32: rec[i] = float32(rec[i].(float64)) case qFloat64: case qInt8: rec[i] = int8(rec[i].(int64)) case qInt16: rec[i] = int16(rec[i].(int64)) case qInt32: rec[i] = int32(rec[i].(int64)) case qInt64: case qString: case qUint8: rec[i] = uint8(rec[i].(uint64)) case qUint16: rec[i] = uint16(rec[i].(uint64)) case qUint32: rec[i] = uint32(rec[i].(uint64)) case qUint64: default: log.Panic("internal error") } } return rec, nil }