c_glib/arrow-glib/basic-data-type.h (688 lines of code) (raw):
/*
* 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.
*/
#pragma once
#include <arrow-glib/basic-array-definition.h>
#include <arrow-glib/chunked-array-definition.h>
#include <arrow-glib/decimal.h>
#include <arrow-glib/type.h>
#include <arrow-glib/version.h>
G_BEGIN_DECLS
#define GARROW_TYPE_DATA_TYPE (garrow_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDataType, garrow_data_type, GARROW, DATA_TYPE, GObject)
struct _GArrowDataTypeClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_6_0
GArrowDataType *
garrow_data_type_import(gpointer c_abi_schema, GError **error);
GARROW_AVAILABLE_IN_6_0
gpointer
garrow_data_type_export(GArrowDataType *data_type, GError **error);
GARROW_AVAILABLE_IN_ALL
gboolean
garrow_data_type_equal(GArrowDataType *data_type, GArrowDataType *other_data_type);
GARROW_AVAILABLE_IN_ALL
gchar *
garrow_data_type_to_string(GArrowDataType *data_type);
GARROW_AVAILABLE_IN_ALL
GArrowType
garrow_data_type_get_id(GArrowDataType *data_type);
GARROW_AVAILABLE_IN_3_0
gchar *
garrow_data_type_get_name(GArrowDataType *data_type);
#define GARROW_TYPE_FIXED_WIDTH_DATA_TYPE (garrow_fixed_width_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowFixedWidthDataType,
garrow_fixed_width_data_type,
GARROW,
FIXED_WIDTH_DATA_TYPE,
GArrowDataType)
struct _GArrowFixedWidthDataTypeClass
{
GArrowDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
gint
garrow_fixed_width_data_type_get_bit_width(GArrowFixedWidthDataType *data_type);
/* TODO:
GList *garrow_fixed_width_data_type_get_buffer_layout(GArrowFixedWidthDataType
*data_type);
*/
#define GARROW_TYPE_NULL_DATA_TYPE (garrow_null_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(
GArrowNullDataType, garrow_null_data_type, GARROW, NULL_DATA_TYPE, GArrowDataType)
struct _GArrowNullDataTypeClass
{
GArrowDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowNullDataType *
garrow_null_data_type_new(void);
#define GARROW_TYPE_BOOLEAN_DATA_TYPE (garrow_boolean_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowBooleanDataType,
garrow_boolean_data_type,
GARROW,
BOOLEAN_DATA_TYPE,
GArrowFixedWidthDataType)
struct _GArrowBooleanDataTypeClass
{
GArrowFixedWidthDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowBooleanDataType *
garrow_boolean_data_type_new(void);
#define GARROW_TYPE_NUMERIC_DATA_TYPE (garrow_numeric_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowNumericDataType,
garrow_numeric_data_type,
GARROW,
NUMERIC_DATA_TYPE,
GArrowFixedWidthDataType)
struct _GArrowNumericDataTypeClass
{
GArrowFixedWidthDataTypeClass parent_class;
};
#define GARROW_TYPE_INTEGER_DATA_TYPE (garrow_integer_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowIntegerDataType,
garrow_integer_data_type,
GARROW,
INTEGER_DATA_TYPE,
GArrowNumericDataType)
struct _GArrowIntegerDataTypeClass
{
GArrowNumericDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_0_16
gboolean
garrow_integer_data_type_is_signed(GArrowIntegerDataType *data_type);
#define GARROW_TYPE_INT8_DATA_TYPE (garrow_int8_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowInt8DataType,
garrow_int8_data_type,
GARROW,
INT8_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowInt8DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowInt8DataType *
garrow_int8_data_type_new(void);
#define GARROW_TYPE_UINT8_DATA_TYPE (garrow_uint8_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowUInt8DataType,
garrow_uint8_data_type,
GARROW,
UINT8_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowUInt8DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowUInt8DataType *
garrow_uint8_data_type_new(void);
#define GARROW_TYPE_INT16_DATA_TYPE (garrow_int16_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowInt16DataType,
garrow_int16_data_type,
GARROW,
INT16_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowInt16DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowInt16DataType *
garrow_int16_data_type_new(void);
#define GARROW_TYPE_UINT16_DATA_TYPE (garrow_uint16_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowUInt16DataType,
garrow_uint16_data_type,
GARROW,
UINT16_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowUInt16DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowUInt16DataType *
garrow_uint16_data_type_new(void);
#define GARROW_TYPE_INT32_DATA_TYPE (garrow_int32_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowInt32DataType,
garrow_int32_data_type,
GARROW,
INT32_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowInt32DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowInt32DataType *
garrow_int32_data_type_new(void);
#define GARROW_TYPE_UINT32_DATA_TYPE (garrow_uint32_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowUInt32DataType,
garrow_uint32_data_type,
GARROW,
UINT32_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowUInt32DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowUInt32DataType *
garrow_uint32_data_type_new(void);
#define GARROW_TYPE_INT64_DATA_TYPE (garrow_int64_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowInt64DataType,
garrow_int64_data_type,
GARROW,
INT64_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowInt64DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowInt64DataType *
garrow_int64_data_type_new(void);
#define GARROW_TYPE_UINT64_DATA_TYPE (garrow_uint64_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowUInt64DataType,
garrow_uint64_data_type,
GARROW,
UINT64_DATA_TYPE,
GArrowIntegerDataType)
struct _GArrowUInt64DataTypeClass
{
GArrowIntegerDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowUInt64DataType *
garrow_uint64_data_type_new(void);
#define GARROW_TYPE_FLOATING_POINT_DATA_TYPE (garrow_floating_point_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowFloatingPointDataType,
garrow_floating_point_data_type,
GARROW,
FLOATING_POINT_DATA_TYPE,
GArrowNumericDataType)
struct _GArrowFloatingPointDataTypeClass
{
GArrowNumericDataTypeClass parent_class;
};
#define GARROW_TYPE_HALF_FLOAT_DATA_TYPE (garrow_half_float_data_type_get_type())
GARROW_AVAILABLE_IN_11_0
G_DECLARE_DERIVABLE_TYPE(GArrowHalfFloatDataType,
garrow_half_float_data_type,
GARROW,
HALF_FLOAT_DATA_TYPE,
GArrowFloatingPointDataType)
struct _GArrowHalfFloatDataTypeClass
{
GArrowFloatingPointDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_11_0
GArrowHalfFloatDataType *
garrow_half_float_data_type_new(void);
#define GARROW_TYPE_FLOAT_DATA_TYPE (garrow_float_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowFloatDataType,
garrow_float_data_type,
GARROW,
FLOAT_DATA_TYPE,
GArrowFloatingPointDataType)
struct _GArrowFloatDataTypeClass
{
GArrowFloatingPointDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowFloatDataType *
garrow_float_data_type_new(void);
#define GARROW_TYPE_DOUBLE_DATA_TYPE (garrow_double_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDoubleDataType,
garrow_double_data_type,
GARROW,
DOUBLE_DATA_TYPE,
GArrowFloatingPointDataType)
struct _GArrowDoubleDataTypeClass
{
GArrowFloatingPointDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowDoubleDataType *
garrow_double_data_type_new(void);
#define GARROW_TYPE_BINARY_DATA_TYPE (garrow_binary_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(
GArrowBinaryDataType, garrow_binary_data_type, GARROW, BINARY_DATA_TYPE, GArrowDataType)
struct _GArrowBinaryDataTypeClass
{
GArrowDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowBinaryDataType *
garrow_binary_data_type_new(void);
#define GARROW_TYPE_FIXED_SIZE_BINARY_DATA_TYPE \
(garrow_fixed_size_binary_data_type_get_type())
GARROW_AVAILABLE_IN_0_12
G_DECLARE_DERIVABLE_TYPE(GArrowFixedSizeBinaryDataType,
garrow_fixed_size_binary_data_type,
GARROW,
FIXED_SIZE_BINARY_DATA_TYPE,
GArrowDataType)
struct _GArrowFixedSizeBinaryDataTypeClass
{
GArrowFixedWidthDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_0_12
GArrowFixedSizeBinaryDataType *
garrow_fixed_size_binary_data_type_new(gint32 byte_width);
GARROW_AVAILABLE_IN_0_12
gint32
garrow_fixed_size_binary_data_type_get_byte_width(
GArrowFixedSizeBinaryDataType *data_type);
#define GARROW_TYPE_LARGE_BINARY_DATA_TYPE (garrow_large_binary_data_type_get_type())
GARROW_AVAILABLE_IN_0_17
G_DECLARE_DERIVABLE_TYPE(GArrowLargeBinaryDataType,
garrow_large_binary_data_type,
GARROW,
LARGE_BINARY_DATA_TYPE,
GArrowDataType)
struct _GArrowLargeBinaryDataTypeClass
{
GArrowDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_0_17
GArrowLargeBinaryDataType *
garrow_large_binary_data_type_new(void);
#define GARROW_TYPE_STRING_DATA_TYPE (garrow_string_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowStringDataType,
garrow_string_data_type,
GARROW,
STRING_DATA_TYPE,
GArrowBinaryDataType)
struct _GArrowStringDataTypeClass
{
GArrowBinaryDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowStringDataType *
garrow_string_data_type_new(void);
#define GARROW_TYPE_LARGE_STRING_DATA_TYPE (garrow_large_string_data_type_get_type())
GARROW_AVAILABLE_IN_0_17
G_DECLARE_DERIVABLE_TYPE(GArrowLargeStringDataType,
garrow_large_string_data_type,
GARROW,
LARGE_STRING_DATA_TYPE,
GArrowLargeBinaryDataType)
struct _GArrowLargeStringDataTypeClass
{
GArrowLargeBinaryDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_0_17
GArrowLargeStringDataType *
garrow_large_string_data_type_new(void);
#define GARROW_TYPE_TEMPORAL_DATA_TYPE (garrow_temporal_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowTemporalDataType,
garrow_temporal_data_type,
GARROW,
TEMPORAL_DATA_TYPE,
GArrowFixedWidthDataType)
struct _GArrowTemporalDataTypeClass
{
GArrowFixedWidthDataTypeClass parent_class;
};
#define GARROW_TYPE_DATE32_DATA_TYPE (garrow_date32_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDate32DataType,
garrow_date32_data_type,
GARROW,
DATE32_DATA_TYPE,
GArrowTemporalDataType)
struct _GArrowDate32DataTypeClass
{
GArrowTemporalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowDate32DataType *
garrow_date32_data_type_new(void);
#define GARROW_TYPE_DATE64_DATA_TYPE (garrow_date64_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDate64DataType,
garrow_date64_data_type,
GARROW,
DATE64_DATA_TYPE,
GArrowTemporalDataType)
struct _GArrowDate64DataTypeClass
{
GArrowTemporalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowDate64DataType *
garrow_date64_data_type_new(void);
#define GARROW_TYPE_TIMESTAMP_DATA_TYPE (garrow_timestamp_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowTimestampDataType,
garrow_timestamp_data_type,
GARROW,
TIMESTAMP_DATA_TYPE,
GArrowTemporalDataType)
struct _GArrowTimestampDataTypeClass
{
GArrowTemporalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowTimestampDataType *
garrow_timestamp_data_type_new(GArrowTimeUnit unit, GTimeZone *time_zone);
GARROW_AVAILABLE_IN_ALL
GArrowTimeUnit
garrow_timestamp_data_type_get_unit(GArrowTimestampDataType *data_type);
#define GARROW_TYPE_TIME_DATA_TYPE (garrow_time_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowTimeDataType,
garrow_time_data_type,
GARROW,
TIME_DATA_TYPE,
GArrowTemporalDataType)
struct _GArrowTimeDataTypeClass
{
GArrowTemporalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowTimeUnit
garrow_time_data_type_get_unit(GArrowTimeDataType *time_data_type);
#define GARROW_TYPE_TIME32_DATA_TYPE (garrow_time32_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowTime32DataType,
garrow_time32_data_type,
GARROW,
TIME32_DATA_TYPE,
GArrowTimeDataType)
struct _GArrowTime32DataTypeClass
{
GArrowTimeDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowTime32DataType *
garrow_time32_data_type_new(GArrowTimeUnit unit, GError **error);
#define GARROW_TYPE_TIME64_DATA_TYPE (garrow_time64_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowTime64DataType,
garrow_time64_data_type,
GARROW,
TIME64_DATA_TYPE,
GArrowTimeDataType)
struct _GArrowTime64DataTypeClass
{
GArrowTimeDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowTime64DataType *
garrow_time64_data_type_new(GArrowTimeUnit unit, GError **error);
#define GARROW_TYPE_INTERVAL_DATA_TYPE (garrow_interval_data_type_get_type())
GARROW_AVAILABLE_IN_7_0
G_DECLARE_DERIVABLE_TYPE(GArrowIntervalDataType,
garrow_interval_data_type,
GARROW,
INTERVAL_DATA_TYPE,
GArrowTimeDataType)
struct _GArrowIntervalDataTypeClass
{
GArrowTimeDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_7_0
GArrowIntervalType
garrow_interval_data_type_get_interval_type(GArrowIntervalDataType *type);
#define GARROW_TYPE_MONTH_INTERVAL_DATA_TYPE (garrow_month_interval_data_type_get_type())
GARROW_AVAILABLE_IN_7_0
G_DECLARE_DERIVABLE_TYPE(GArrowMonthIntervalDataType,
garrow_month_interval_data_type,
GARROW,
MONTH_INTERVAL_DATA_TYPE,
GArrowIntervalDataType)
struct _GArrowMonthIntervalDataTypeClass
{
GArrowIntervalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_7_0
GArrowMonthIntervalDataType *
garrow_month_interval_data_type_new(void);
#define GARROW_TYPE_DAY_TIME_INTERVAL_DATA_TYPE \
(garrow_day_time_interval_data_type_get_type())
GARROW_AVAILABLE_IN_7_0
G_DECLARE_DERIVABLE_TYPE(GArrowDayTimeIntervalDataType,
garrow_day_time_interval_data_type,
GARROW,
DAY_TIME_INTERVAL_DATA_TYPE,
GArrowIntervalDataType)
struct _GArrowDayTimeIntervalDataTypeClass
{
GArrowIntervalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_7_0
GArrowDayTimeIntervalDataType *
garrow_day_time_interval_data_type_new(void);
#define GARROW_TYPE_MONTH_DAY_NANO_INTERVAL_DATA_TYPE \
(garrow_month_day_nano_interval_data_type_get_type())
GARROW_AVAILABLE_IN_7_0
G_DECLARE_DERIVABLE_TYPE(GArrowMonthDayNanoIntervalDataType,
garrow_month_day_nano_interval_data_type,
GARROW,
MONTH_DAY_NANO_INTERVAL_DATA_TYPE,
GArrowIntervalDataType)
struct _GArrowMonthDayNanoIntervalDataTypeClass
{
GArrowIntervalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_7_0
GArrowMonthDayNanoIntervalDataType *
garrow_month_day_nano_interval_data_type_new(void);
#define GARROW_TYPE_DECIMAL_DATA_TYPE (garrow_decimal_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDecimalDataType,
garrow_decimal_data_type,
GARROW,
DECIMAL_DATA_TYPE,
GArrowFixedSizeBinaryDataType)
struct _GArrowDecimalDataTypeClass
{
GArrowFixedSizeBinaryDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_ALL
GArrowDecimalDataType *
garrow_decimal_data_type_new(gint32 precision, gint32 scale, GError **error);
GARROW_AVAILABLE_IN_ALL
gint32
garrow_decimal_data_type_get_precision(GArrowDecimalDataType *decimal_data_type);
GARROW_AVAILABLE_IN_ALL
gint32
garrow_decimal_data_type_get_scale(GArrowDecimalDataType *decimal_data_type);
#define GARROW_TYPE_DECIMAL32_DATA_TYPE (garrow_decimal32_data_type_get_type())
GARROW_AVAILABLE_IN_19_0
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal32DataType,
garrow_decimal32_data_type,
GARROW,
DECIMAL32_DATA_TYPE,
GArrowDecimalDataType)
struct _GArrowDecimal32DataTypeClass
{
GArrowDecimalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_19_0
gint32
garrow_decimal32_data_type_max_precision();
GARROW_AVAILABLE_IN_19_0
GArrowDecimal32DataType *
garrow_decimal32_data_type_new(gint32 precision, gint32 scale, GError **error);
#define GARROW_TYPE_DECIMAL64_DATA_TYPE (garrow_decimal64_data_type_get_type())
GARROW_AVAILABLE_IN_19_0
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal64DataType,
garrow_decimal64_data_type,
GARROW,
DECIMAL64_DATA_TYPE,
GArrowDecimalDataType)
struct _GArrowDecimal64DataTypeClass
{
GArrowDecimalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_19_0
gint32
garrow_decimal64_data_type_max_precision();
GARROW_AVAILABLE_IN_19_0
GArrowDecimal64DataType *
garrow_decimal64_data_type_new(gint32 precision, gint32 scale, GError **error);
#define GARROW_TYPE_DECIMAL128_DATA_TYPE (garrow_decimal128_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal128DataType,
garrow_decimal128_data_type,
GARROW,
DECIMAL128_DATA_TYPE,
GArrowDecimalDataType)
struct _GArrowDecimal128DataTypeClass
{
GArrowDecimalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
gint32
garrow_decimal128_data_type_max_precision();
GARROW_AVAILABLE_IN_0_12
GArrowDecimal128DataType *
garrow_decimal128_data_type_new(gint32 precision, gint32 scale, GError **error);
#define GARROW_TYPE_DECIMAL256_DATA_TYPE (garrow_decimal256_data_type_get_type())
GARROW_AVAILABLE_IN_ALL
G_DECLARE_DERIVABLE_TYPE(GArrowDecimal256DataType,
garrow_decimal256_data_type,
GARROW,
DECIMAL256_DATA_TYPE,
GArrowDecimalDataType)
struct _GArrowDecimal256DataTypeClass
{
GArrowDecimalDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
gint32
garrow_decimal256_data_type_max_precision();
GARROW_AVAILABLE_IN_3_0
GArrowDecimal256DataType *
garrow_decimal256_data_type_new(gint32 precision, gint32 scale, GError **error);
#define GARROW_TYPE_EXTENSION_DATA_TYPE (garrow_extension_data_type_get_type())
GARROW_AVAILABLE_IN_3_0
G_DECLARE_DERIVABLE_TYPE(GArrowExtensionDataType,
garrow_extension_data_type,
GARROW,
EXTENSION_DATA_TYPE,
GArrowDataType)
/**
* GArrowExtensionDataTypeClass:
* @get_extension_name: It must returns the name of this extension data type.
* @equal: It must returns %TRUE only when the both data types equal, %FALSE
* otherwise.
* @deserialize: It must returns a serialized #GArrowDataType from the given
* `serialized_data`.
* @serialize: It must returns a serialized data of this extension data type
* to deserialize later.
* @get_array_gtype: It must returns #GType for corresponding extension array
* class.
*
* Since: 3.0.0
*/
struct _GArrowExtensionDataTypeClass
{
GArrowDataTypeClass parent_class;
gchar *(*get_extension_name)(GArrowExtensionDataType *data_type);
gboolean (*equal)(GArrowExtensionDataType *data_type,
GArrowExtensionDataType *other_data_type);
GArrowDataType *(*deserialize)(GArrowExtensionDataType *data_type,
GArrowDataType *storage_data_type,
GBytes *serialized_data,
GError **error);
GBytes *(*serialize)(GArrowExtensionDataType *data_type);
GType (*get_array_gtype)(GArrowExtensionDataType *data_type);
};
GARROW_AVAILABLE_IN_3_0
gchar *
garrow_extension_data_type_get_extension_name(GArrowExtensionDataType *data_type);
GARROW_AVAILABLE_IN_3_0
GArrowExtensionArray *
garrow_extension_data_type_wrap_array(GArrowExtensionDataType *data_type,
GArrowArray *storage);
GARROW_AVAILABLE_IN_3_0
GArrowChunkedArray *
garrow_extension_data_type_wrap_chunked_array(GArrowExtensionDataType *data_type,
GArrowChunkedArray *storage);
#define GARROW_TYPE_EXTENSION_DATA_TYPE_REGISTRY \
(garrow_extension_data_type_registry_get_type())
GARROW_AVAILABLE_IN_3_0
G_DECLARE_DERIVABLE_TYPE(GArrowExtensionDataTypeRegistry,
garrow_extension_data_type_registry,
GARROW,
EXTENSION_DATA_TYPE_REGISTRY,
GObject)
struct _GArrowExtensionDataTypeRegistryClass
{
GObjectClass parent_class;
};
GARROW_AVAILABLE_IN_3_0
GArrowExtensionDataTypeRegistry *
garrow_extension_data_type_registry_default(void);
GARROW_AVAILABLE_IN_3_0
gboolean
garrow_extension_data_type_registry_register(GArrowExtensionDataTypeRegistry *registry,
GArrowExtensionDataType *data_type,
GError **error);
GARROW_AVAILABLE_IN_3_0
gboolean
garrow_extension_data_type_registry_unregister(GArrowExtensionDataTypeRegistry *registry,
const gchar *name,
GError **error);
GARROW_AVAILABLE_IN_3_0
GArrowExtensionDataType *
garrow_extension_data_type_registry_lookup(GArrowExtensionDataTypeRegistry *registry,
const gchar *name);
#define GARROW_TYPE_BINARY_VIEW_DATA_TYPE (garrow_binary_view_data_type_get_type())
GARROW_AVAILABLE_IN_19_0
G_DECLARE_DERIVABLE_TYPE(GArrowBinaryViewDataType,
garrow_binary_view_data_type,
GARROW,
BINARY_VIEW_DATA_TYPE,
GArrowDataType)
struct _GArrowBinaryViewDataTypeClass
{
GArrowDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_19_0
GArrowBinaryViewDataType *
garrow_binary_view_data_type_new(void);
#define GARROW_TYPE_STRING_VIEW_DATA_TYPE (garrow_string_view_data_type_get_type())
GARROW_AVAILABLE_IN_19_0
G_DECLARE_DERIVABLE_TYPE(GArrowStringViewDataType,
garrow_string_view_data_type,
GARROW,
STRING_VIEW_DATA_TYPE,
GArrowBinaryViewDataType)
struct _GArrowStringViewDataTypeClass
{
GArrowBinaryViewDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_19_0
GArrowStringViewDataType *
garrow_string_view_data_type_new(void);
#define GARROW_TYPE_FIXED_SHAPE_TENSOR_DATA_TYPE \
(garrow_fixed_shape_tensor_data_type_get_type())
GARROW_AVAILABLE_IN_21_0
G_DECLARE_DERIVABLE_TYPE(GArrowFixedShapeTensorDataType,
garrow_fixed_shape_tensor_data_type,
GARROW,
FIXED_SHAPE_TENSOR_DATA_TYPE,
GArrowExtensionDataType)
struct _GArrowFixedShapeTensorDataTypeClass
{
GArrowExtensionDataTypeClass parent_class;
};
GARROW_AVAILABLE_IN_21_0
GArrowFixedShapeTensorDataType *
garrow_fixed_shape_tensor_data_type_new(GArrowDataType *value_type,
const gint64 *shape,
gsize shape_length,
const gint64 *permutation,
gsize permutation_length,
const gchar **dim_names,
gsize n_dim_names,
GError **error);
G_END_DECLS