arrow/type_traits_numeric.gen.go (248 lines of code) (raw):
// Code generated by type_traits_numeric.gen.go.tmpl. DO NOT EDIT.
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package arrow
import (
"math"
"unsafe"
"github.com/apache/arrow-go/v18/arrow/endian"
)
var (
Int64Traits int64Traits
Uint64Traits uint64Traits
Float64Traits float64Traits
Int32Traits int32Traits
Uint32Traits uint32Traits
Float32Traits float32Traits
Int16Traits int16Traits
Uint16Traits uint16Traits
Int8Traits int8Traits
Uint8Traits uint8Traits
Time32Traits time32Traits
Time64Traits time64Traits
Date32Traits date32Traits
Date64Traits date64Traits
DurationTraits durationTraits
)
// Int64 traits
const (
// Int64SizeBytes specifies the number of bytes required to store a single int64 in memory
Int64SizeBytes = int(unsafe.Sizeof(int64(0)))
)
type int64Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (int64Traits) BytesRequired(n int) int { return Int64SizeBytes * n }
// PutValue
func (int64Traits) PutValue(b []byte, v int64) {
endian.Native.PutUint64(b, uint64(v))
}
// CastFromBytes reinterprets the slice b to a slice of type int64.
//
// NOTE: len(b) must be a multiple of Int64SizeBytes.
func (int64Traits) CastFromBytes(b []byte) []int64 {
return GetData[int64](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (int64Traits) CastToBytes(b []int64) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (int64Traits) Copy(dst, src []int64) { copy(dst, src) }
// Uint64 traits
const (
// Uint64SizeBytes specifies the number of bytes required to store a single uint64 in memory
Uint64SizeBytes = int(unsafe.Sizeof(uint64(0)))
)
type uint64Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (uint64Traits) BytesRequired(n int) int { return Uint64SizeBytes * n }
// PutValue
func (uint64Traits) PutValue(b []byte, v uint64) {
endian.Native.PutUint64(b, uint64(v))
}
// CastFromBytes reinterprets the slice b to a slice of type uint64.
//
// NOTE: len(b) must be a multiple of Uint64SizeBytes.
func (uint64Traits) CastFromBytes(b []byte) []uint64 {
return GetData[uint64](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (uint64Traits) CastToBytes(b []uint64) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (uint64Traits) Copy(dst, src []uint64) { copy(dst, src) }
// Float64 traits
const (
// Float64SizeBytes specifies the number of bytes required to store a single float64 in memory
Float64SizeBytes = int(unsafe.Sizeof(float64(0)))
)
type float64Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (float64Traits) BytesRequired(n int) int { return Float64SizeBytes * n }
// PutValue
func (float64Traits) PutValue(b []byte, v float64) {
endian.Native.PutUint64(b, math.Float64bits(v))
}
// CastFromBytes reinterprets the slice b to a slice of type float64.
//
// NOTE: len(b) must be a multiple of Float64SizeBytes.
func (float64Traits) CastFromBytes(b []byte) []float64 {
return GetData[float64](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (float64Traits) CastToBytes(b []float64) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (float64Traits) Copy(dst, src []float64) { copy(dst, src) }
// Int32 traits
const (
// Int32SizeBytes specifies the number of bytes required to store a single int32 in memory
Int32SizeBytes = int(unsafe.Sizeof(int32(0)))
)
type int32Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (int32Traits) BytesRequired(n int) int { return Int32SizeBytes * n }
// PutValue
func (int32Traits) PutValue(b []byte, v int32) {
endian.Native.PutUint32(b, uint32(v))
}
// CastFromBytes reinterprets the slice b to a slice of type int32.
//
// NOTE: len(b) must be a multiple of Int32SizeBytes.
func (int32Traits) CastFromBytes(b []byte) []int32 {
return GetData[int32](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (int32Traits) CastToBytes(b []int32) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (int32Traits) Copy(dst, src []int32) { copy(dst, src) }
// Uint32 traits
const (
// Uint32SizeBytes specifies the number of bytes required to store a single uint32 in memory
Uint32SizeBytes = int(unsafe.Sizeof(uint32(0)))
)
type uint32Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (uint32Traits) BytesRequired(n int) int { return Uint32SizeBytes * n }
// PutValue
func (uint32Traits) PutValue(b []byte, v uint32) {
endian.Native.PutUint32(b, uint32(v))
}
// CastFromBytes reinterprets the slice b to a slice of type uint32.
//
// NOTE: len(b) must be a multiple of Uint32SizeBytes.
func (uint32Traits) CastFromBytes(b []byte) []uint32 {
return GetData[uint32](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (uint32Traits) CastToBytes(b []uint32) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (uint32Traits) Copy(dst, src []uint32) { copy(dst, src) }
// Float32 traits
const (
// Float32SizeBytes specifies the number of bytes required to store a single float32 in memory
Float32SizeBytes = int(unsafe.Sizeof(float32(0)))
)
type float32Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (float32Traits) BytesRequired(n int) int { return Float32SizeBytes * n }
// PutValue
func (float32Traits) PutValue(b []byte, v float32) {
endian.Native.PutUint32(b, math.Float32bits(v))
}
// CastFromBytes reinterprets the slice b to a slice of type float32.
//
// NOTE: len(b) must be a multiple of Float32SizeBytes.
func (float32Traits) CastFromBytes(b []byte) []float32 {
return GetData[float32](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (float32Traits) CastToBytes(b []float32) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (float32Traits) Copy(dst, src []float32) { copy(dst, src) }
// Int16 traits
const (
// Int16SizeBytes specifies the number of bytes required to store a single int16 in memory
Int16SizeBytes = int(unsafe.Sizeof(int16(0)))
)
type int16Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (int16Traits) BytesRequired(n int) int { return Int16SizeBytes * n }
// PutValue
func (int16Traits) PutValue(b []byte, v int16) {
endian.Native.PutUint16(b, uint16(v))
}
// CastFromBytes reinterprets the slice b to a slice of type int16.
//
// NOTE: len(b) must be a multiple of Int16SizeBytes.
func (int16Traits) CastFromBytes(b []byte) []int16 {
return GetData[int16](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (int16Traits) CastToBytes(b []int16) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (int16Traits) Copy(dst, src []int16) { copy(dst, src) }
// Uint16 traits
const (
// Uint16SizeBytes specifies the number of bytes required to store a single uint16 in memory
Uint16SizeBytes = int(unsafe.Sizeof(uint16(0)))
)
type uint16Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (uint16Traits) BytesRequired(n int) int { return Uint16SizeBytes * n }
// PutValue
func (uint16Traits) PutValue(b []byte, v uint16) {
endian.Native.PutUint16(b, uint16(v))
}
// CastFromBytes reinterprets the slice b to a slice of type uint16.
//
// NOTE: len(b) must be a multiple of Uint16SizeBytes.
func (uint16Traits) CastFromBytes(b []byte) []uint16 {
return GetData[uint16](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (uint16Traits) CastToBytes(b []uint16) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (uint16Traits) Copy(dst, src []uint16) { copy(dst, src) }
// Int8 traits
const (
// Int8SizeBytes specifies the number of bytes required to store a single int8 in memory
Int8SizeBytes = int(unsafe.Sizeof(int8(0)))
)
type int8Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (int8Traits) BytesRequired(n int) int { return Int8SizeBytes * n }
// PutValue
func (int8Traits) PutValue(b []byte, v int8) {
b[0] = byte(v)
}
// CastFromBytes reinterprets the slice b to a slice of type int8.
//
// NOTE: len(b) must be a multiple of Int8SizeBytes.
func (int8Traits) CastFromBytes(b []byte) []int8 {
return GetData[int8](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (int8Traits) CastToBytes(b []int8) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (int8Traits) Copy(dst, src []int8) { copy(dst, src) }
// Uint8 traits
const (
// Uint8SizeBytes specifies the number of bytes required to store a single uint8 in memory
Uint8SizeBytes = int(unsafe.Sizeof(uint8(0)))
)
type uint8Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (uint8Traits) BytesRequired(n int) int { return Uint8SizeBytes * n }
// PutValue
func (uint8Traits) PutValue(b []byte, v uint8) {
b[0] = byte(v)
}
// CastFromBytes reinterprets the slice b to a slice of type uint8.
//
// NOTE: len(b) must be a multiple of Uint8SizeBytes.
func (uint8Traits) CastFromBytes(b []byte) []uint8 {
return GetData[uint8](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (uint8Traits) CastToBytes(b []uint8) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (uint8Traits) Copy(dst, src []uint8) { copy(dst, src) }
// Time32 traits
const (
// Time32SizeBytes specifies the number of bytes required to store a single Time32 in memory
Time32SizeBytes = int(unsafe.Sizeof(Time32(0)))
)
type time32Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (time32Traits) BytesRequired(n int) int { return Time32SizeBytes * n }
// PutValue
func (time32Traits) PutValue(b []byte, v Time32) {
endian.Native.PutUint32(b, uint32(v))
}
// CastFromBytes reinterprets the slice b to a slice of type Time32.
//
// NOTE: len(b) must be a multiple of Time32SizeBytes.
func (time32Traits) CastFromBytes(b []byte) []Time32 {
return GetData[Time32](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (time32Traits) CastToBytes(b []Time32) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (time32Traits) Copy(dst, src []Time32) { copy(dst, src) }
// Time64 traits
const (
// Time64SizeBytes specifies the number of bytes required to store a single Time64 in memory
Time64SizeBytes = int(unsafe.Sizeof(Time64(0)))
)
type time64Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (time64Traits) BytesRequired(n int) int { return Time64SizeBytes * n }
// PutValue
func (time64Traits) PutValue(b []byte, v Time64) {
endian.Native.PutUint64(b, uint64(v))
}
// CastFromBytes reinterprets the slice b to a slice of type Time64.
//
// NOTE: len(b) must be a multiple of Time64SizeBytes.
func (time64Traits) CastFromBytes(b []byte) []Time64 {
return GetData[Time64](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (time64Traits) CastToBytes(b []Time64) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (time64Traits) Copy(dst, src []Time64) { copy(dst, src) }
// Date32 traits
const (
// Date32SizeBytes specifies the number of bytes required to store a single Date32 in memory
Date32SizeBytes = int(unsafe.Sizeof(Date32(0)))
)
type date32Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (date32Traits) BytesRequired(n int) int { return Date32SizeBytes * n }
// PutValue
func (date32Traits) PutValue(b []byte, v Date32) {
endian.Native.PutUint32(b, uint32(v))
}
// CastFromBytes reinterprets the slice b to a slice of type Date32.
//
// NOTE: len(b) must be a multiple of Date32SizeBytes.
func (date32Traits) CastFromBytes(b []byte) []Date32 {
return GetData[Date32](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (date32Traits) CastToBytes(b []Date32) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (date32Traits) Copy(dst, src []Date32) { copy(dst, src) }
// Date64 traits
const (
// Date64SizeBytes specifies the number of bytes required to store a single Date64 in memory
Date64SizeBytes = int(unsafe.Sizeof(Date64(0)))
)
type date64Traits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (date64Traits) BytesRequired(n int) int { return Date64SizeBytes * n }
// PutValue
func (date64Traits) PutValue(b []byte, v Date64) {
endian.Native.PutUint64(b, uint64(v))
}
// CastFromBytes reinterprets the slice b to a slice of type Date64.
//
// NOTE: len(b) must be a multiple of Date64SizeBytes.
func (date64Traits) CastFromBytes(b []byte) []Date64 {
return GetData[Date64](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (date64Traits) CastToBytes(b []Date64) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (date64Traits) Copy(dst, src []Date64) { copy(dst, src) }
// Duration traits
const (
// DurationSizeBytes specifies the number of bytes required to store a single Duration in memory
DurationSizeBytes = int(unsafe.Sizeof(Duration(0)))
)
type durationTraits struct{}
// BytesRequired returns the number of bytes required to store n elements in memory.
func (durationTraits) BytesRequired(n int) int { return DurationSizeBytes * n }
// PutValue
func (durationTraits) PutValue(b []byte, v Duration) {
endian.Native.PutUint64(b, uint64(v))
}
// CastFromBytes reinterprets the slice b to a slice of type Duration.
//
// NOTE: len(b) must be a multiple of DurationSizeBytes.
func (durationTraits) CastFromBytes(b []byte) []Duration {
return GetData[Duration](b)
}
// CastToBytes reinterprets the slice b to a slice of bytes.
func (durationTraits) CastToBytes(b []Duration) []byte {
return GetBytes(b)
}
// Copy copies src to dst.
func (durationTraits) Copy(dst, src []Duration) { copy(dst, src) }