1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20 #pragma once 21 22 #include <arrow-glib/array.h> 23 24 G_BEGIN_DECLS 25 26 typedef struct _GArrowCastOptions GArrowCastOptions; 27 28 #define GARROW_TYPE_SCALAR (garrow_scalar_get_type()) 29 G_DECLARE_DERIVABLE_TYPE(GArrowScalar, 30 garrow_scalar, 31 GARROW, 32 SCALAR, 33 GObject) 34 struct _GArrowScalarClass 35 { 36 GObjectClass parent_class; 37 }; 38 39 GARROW_AVAILABLE_IN_5_0 40 GArrowScalar * 41 garrow_scalar_parse(GArrowDataType *data_type, 42 const guint8 *data, 43 gsize size, 44 GError **error); 45 46 GARROW_AVAILABLE_IN_5_0 47 GArrowDataType * 48 garrow_scalar_get_data_type(GArrowScalar *scalar); 49 GARROW_AVAILABLE_IN_5_0 50 gboolean 51 garrow_scalar_is_valid(GArrowScalar *scalar); 52 GARROW_AVAILABLE_IN_5_0 53 gboolean 54 garrow_scalar_equal(GArrowScalar *scalar, 55 GArrowScalar *other_scalar); 56 GARROW_AVAILABLE_IN_5_0 57 gboolean 58 garrow_scalar_equal_options(GArrowScalar *scalar, 59 GArrowScalar *other_scalar, 60 GArrowEqualOptions *options); 61 GARROW_AVAILABLE_IN_5_0 62 gchar * 63 garrow_scalar_to_string(GArrowScalar *scalar); 64 65 GARROW_AVAILABLE_IN_5_0 66 GArrowScalar * 67 garrow_scalar_cast(GArrowScalar *scalar, 68 GArrowDataType *data_type, 69 GArrowCastOptions *options, 70 GError **error); 71 72 73 #define GARROW_TYPE_NULL_SCALAR (garrow_null_scalar_get_type()) 74 G_DECLARE_DERIVABLE_TYPE(GArrowNullScalar, 75 garrow_null_scalar, 76 GARROW, 77 NULL_SCALAR, 78 GArrowScalar) 79 struct _GArrowNullScalarClass 80 { 81 GArrowScalarClass parent_class; 82 }; 83 84 GARROW_AVAILABLE_IN_5_0 85 GArrowNullScalar * 86 garrow_null_scalar_new(void); 87 88 89 #define GARROW_TYPE_BOOLEAN_SCALAR (garrow_boolean_scalar_get_type()) 90 G_DECLARE_DERIVABLE_TYPE(GArrowBooleanScalar, 91 garrow_boolean_scalar, 92 GARROW, 93 BOOLEAN_SCALAR, 94 GArrowScalar) 95 struct _GArrowBooleanScalarClass 96 { 97 GArrowScalarClass parent_class; 98 }; 99 100 GARROW_AVAILABLE_IN_5_0 101 GArrowBooleanScalar * 102 garrow_boolean_scalar_new(gboolean value); 103 GARROW_AVAILABLE_IN_5_0 104 gboolean 105 garrow_boolean_scalar_get_value(GArrowBooleanScalar *scalar); 106 107 108 #define GARROW_TYPE_INT8_SCALAR (garrow_int8_scalar_get_type()) 109 G_DECLARE_DERIVABLE_TYPE(GArrowInt8Scalar, 110 garrow_int8_scalar, 111 GARROW, 112 INT8_SCALAR, 113 GArrowScalar) 114 struct _GArrowInt8ScalarClass 115 { 116 GArrowScalarClass parent_class; 117 }; 118 119 GARROW_AVAILABLE_IN_5_0 120 GArrowInt8Scalar * 121 garrow_int8_scalar_new(gint8 value); 122 GARROW_AVAILABLE_IN_5_0 123 gint8 124 garrow_int8_scalar_get_value(GArrowInt8Scalar *scalar); 125 126 127 #define GARROW_TYPE_INT16_SCALAR (garrow_int16_scalar_get_type()) 128 G_DECLARE_DERIVABLE_TYPE(GArrowInt16Scalar, 129 garrow_int16_scalar, 130 GARROW, 131 INT16_SCALAR, 132 GArrowScalar) 133 struct _GArrowInt16ScalarClass 134 { 135 GArrowScalarClass parent_class; 136 }; 137 138 GARROW_AVAILABLE_IN_5_0 139 GArrowInt16Scalar * 140 garrow_int16_scalar_new(gint16 value); 141 GARROW_AVAILABLE_IN_5_0 142 gint16 143 garrow_int16_scalar_get_value(GArrowInt16Scalar *scalar); 144 145 146 #define GARROW_TYPE_INT32_SCALAR (garrow_int32_scalar_get_type()) 147 G_DECLARE_DERIVABLE_TYPE(GArrowInt32Scalar, 148 garrow_int32_scalar, 149 GARROW, 150 INT32_SCALAR, 151 GArrowScalar) 152 struct _GArrowInt32ScalarClass 153 { 154 GArrowScalarClass parent_class; 155 }; 156 157 GARROW_AVAILABLE_IN_5_0 158 GArrowInt32Scalar * 159 garrow_int32_scalar_new(gint32 value); 160 GARROW_AVAILABLE_IN_5_0 161 gint32 162 garrow_int32_scalar_get_value(GArrowInt32Scalar *scalar); 163 164 165 #define GARROW_TYPE_INT64_SCALAR (garrow_int64_scalar_get_type()) 166 G_DECLARE_DERIVABLE_TYPE(GArrowInt64Scalar, 167 garrow_int64_scalar, 168 GARROW, 169 INT64_SCALAR, 170 GArrowScalar) 171 struct _GArrowInt64ScalarClass 172 { 173 GArrowScalarClass parent_class; 174 }; 175 176 GARROW_AVAILABLE_IN_5_0 177 GArrowInt64Scalar * 178 garrow_int64_scalar_new(gint64 value); 179 GARROW_AVAILABLE_IN_5_0 180 gint64 181 garrow_int64_scalar_get_value(GArrowInt64Scalar *scalar); 182 183 184 #define GARROW_TYPE_UINT8_SCALAR (garrow_uint8_scalar_get_type()) 185 G_DECLARE_DERIVABLE_TYPE(GArrowUInt8Scalar, 186 garrow_uint8_scalar, 187 GARROW, 188 UINT8_SCALAR, 189 GArrowScalar) 190 struct _GArrowUInt8ScalarClass 191 { 192 GArrowScalarClass parent_class; 193 }; 194 195 GARROW_AVAILABLE_IN_5_0 196 GArrowUInt8Scalar * 197 garrow_uint8_scalar_new(guint8 value); 198 GARROW_AVAILABLE_IN_5_0 199 guint8 200 garrow_uint8_scalar_get_value(GArrowUInt8Scalar *scalar); 201 202 203 #define GARROW_TYPE_UINT16_SCALAR (garrow_uint16_scalar_get_type()) 204 G_DECLARE_DERIVABLE_TYPE(GArrowUInt16Scalar, 205 garrow_uint16_scalar, 206 GARROW, 207 UINT16_SCALAR, 208 GArrowScalar) 209 struct _GArrowUInt16ScalarClass 210 { 211 GArrowScalarClass parent_class; 212 }; 213 214 GARROW_AVAILABLE_IN_5_0 215 GArrowUInt16Scalar * 216 garrow_uint16_scalar_new(guint16 value); 217 GARROW_AVAILABLE_IN_5_0 218 guint16 219 garrow_uint16_scalar_get_value(GArrowUInt16Scalar *scalar); 220 221 222 #define GARROW_TYPE_UINT32_SCALAR (garrow_uint32_scalar_get_type()) 223 G_DECLARE_DERIVABLE_TYPE(GArrowUInt32Scalar, 224 garrow_uint32_scalar, 225 GARROW, 226 UINT32_SCALAR, 227 GArrowScalar) 228 struct _GArrowUInt32ScalarClass 229 { 230 GArrowScalarClass parent_class; 231 }; 232 233 GARROW_AVAILABLE_IN_5_0 234 GArrowUInt32Scalar * 235 garrow_uint32_scalar_new(guint32 value); 236 GARROW_AVAILABLE_IN_5_0 237 guint32 238 garrow_uint32_scalar_get_value(GArrowUInt32Scalar *scalar); 239 240 241 #define GARROW_TYPE_UINT64_SCALAR (garrow_uint64_scalar_get_type()) 242 G_DECLARE_DERIVABLE_TYPE(GArrowUInt64Scalar, 243 garrow_uint64_scalar, 244 GARROW, 245 UINT64_SCALAR, 246 GArrowScalar) 247 struct _GArrowUInt64ScalarClass 248 { 249 GArrowScalarClass parent_class; 250 }; 251 252 GARROW_AVAILABLE_IN_5_0 253 GArrowUInt64Scalar * 254 garrow_uint64_scalar_new(guint64 value); 255 GARROW_AVAILABLE_IN_5_0 256 guint64 257 garrow_uint64_scalar_get_value(GArrowUInt64Scalar *scalar); 258 259 260 #define GARROW_TYPE_FLOAT_SCALAR (garrow_float_scalar_get_type()) 261 G_DECLARE_DERIVABLE_TYPE(GArrowFloatScalar, 262 garrow_float_scalar, 263 GARROW, 264 FLOAT_SCALAR, 265 GArrowScalar) 266 struct _GArrowFloatScalarClass 267 { 268 GArrowScalarClass parent_class; 269 }; 270 271 GARROW_AVAILABLE_IN_5_0 272 GArrowFloatScalar * 273 garrow_float_scalar_new(gfloat value); 274 GARROW_AVAILABLE_IN_5_0 275 gfloat 276 garrow_float_scalar_get_value(GArrowFloatScalar *scalar); 277 278 279 #define GARROW_TYPE_DOUBLE_SCALAR (garrow_double_scalar_get_type()) 280 G_DECLARE_DERIVABLE_TYPE(GArrowDoubleScalar, 281 garrow_double_scalar, 282 GARROW, 283 DOUBLE_SCALAR, 284 GArrowScalar) 285 struct _GArrowDoubleScalarClass 286 { 287 GArrowScalarClass parent_class; 288 }; 289 290 GARROW_AVAILABLE_IN_5_0 291 GArrowDoubleScalar * 292 garrow_double_scalar_new(gdouble value); 293 GARROW_AVAILABLE_IN_5_0 294 gdouble 295 garrow_double_scalar_get_value(GArrowDoubleScalar *scalar); 296 297 298 #define GARROW_TYPE_BASE_BINARY_SCALAR (garrow_base_binary_scalar_get_type()) 299 G_DECLARE_DERIVABLE_TYPE(GArrowBaseBinaryScalar, 300 garrow_base_binary_scalar, 301 GARROW, 302 BASE_BINARY_SCALAR, 303 GArrowScalar) 304 struct _GArrowBaseBinaryScalarClass 305 { 306 GArrowScalarClass parent_class; 307 }; 308 309 GARROW_AVAILABLE_IN_5_0 310 GArrowBuffer * 311 garrow_base_binary_scalar_get_value(GArrowBaseBinaryScalar *scalar); 312 313 314 #define GARROW_TYPE_BINARY_SCALAR (garrow_binary_scalar_get_type()) 315 G_DECLARE_DERIVABLE_TYPE(GArrowBinaryScalar, 316 garrow_binary_scalar, 317 GARROW, 318 BINARY_SCALAR, 319 GArrowBaseBinaryScalar) 320 struct _GArrowBinaryScalarClass 321 { 322 GArrowBaseBinaryScalarClass parent_class; 323 }; 324 325 GARROW_AVAILABLE_IN_5_0 326 GArrowBinaryScalar * 327 garrow_binary_scalar_new(GArrowBuffer *value); 328 329 330 #define GARROW_TYPE_STRING_SCALAR (garrow_string_scalar_get_type()) 331 G_DECLARE_DERIVABLE_TYPE(GArrowStringScalar, 332 garrow_string_scalar, 333 GARROW, 334 STRING_SCALAR, 335 GArrowBaseBinaryScalar) 336 struct _GArrowStringScalarClass 337 { 338 GArrowBaseBinaryScalarClass parent_class; 339 }; 340 341 GARROW_AVAILABLE_IN_5_0 342 GArrowStringScalar * 343 garrow_string_scalar_new(GArrowBuffer *value); 344 345 346 #define GARROW_TYPE_LARGE_BINARY_SCALAR (garrow_large_binary_scalar_get_type()) 347 G_DECLARE_DERIVABLE_TYPE(GArrowLargeBinaryScalar, 348 garrow_large_binary_scalar, 349 GARROW, 350 LARGE_BINARY_SCALAR, 351 GArrowBaseBinaryScalar) 352 struct _GArrowLargeBinaryScalarClass 353 { 354 GArrowBaseBinaryScalarClass parent_class; 355 }; 356 357 GARROW_AVAILABLE_IN_5_0 358 GArrowLargeBinaryScalar * 359 garrow_large_binary_scalar_new(GArrowBuffer *value); 360 361 362 #define GARROW_TYPE_LARGE_STRING_SCALAR (garrow_large_string_scalar_get_type()) 363 G_DECLARE_DERIVABLE_TYPE(GArrowLargeStringScalar, 364 garrow_large_string_scalar, 365 GARROW, 366 LARGE_STRING_SCALAR, 367 GArrowBaseBinaryScalar) 368 struct _GArrowLargeStringScalarClass 369 { 370 GArrowBaseBinaryScalarClass parent_class; 371 }; 372 373 GARROW_AVAILABLE_IN_5_0 374 GArrowLargeStringScalar * 375 garrow_large_string_scalar_new(GArrowBuffer *value); 376 377 378 #define GARROW_TYPE_FIXED_SIZE_BINARY_SCALAR \ 379 (garrow_fixed_size_binary_scalar_get_type()) 380 G_DECLARE_DERIVABLE_TYPE(GArrowFixedSizeBinaryScalar, 381 garrow_fixed_size_binary_scalar, 382 GARROW, 383 FIXED_SIZE_BINARY_SCALAR, 384 GArrowBaseBinaryScalar) 385 struct _GArrowFixedSizeBinaryScalarClass 386 { 387 GArrowBaseBinaryScalarClass parent_class; 388 }; 389 390 GARROW_AVAILABLE_IN_5_0 391 GArrowFixedSizeBinaryScalar * 392 garrow_fixed_size_binary_scalar_new(GArrowFixedSizeBinaryDataType *data_type, 393 GArrowBuffer *value); 394 395 396 #define GARROW_TYPE_DATE32_SCALAR (garrow_date32_scalar_get_type()) 397 G_DECLARE_DERIVABLE_TYPE(GArrowDate32Scalar, 398 garrow_date32_scalar, 399 GARROW, 400 DATE32_SCALAR, 401 GArrowScalar) 402 struct _GArrowDate32ScalarClass 403 { 404 GArrowScalarClass parent_class; 405 }; 406 407 GARROW_AVAILABLE_IN_5_0 408 GArrowDate32Scalar * 409 garrow_date32_scalar_new(gint32 value); 410 GARROW_AVAILABLE_IN_5_0 411 gint32 412 garrow_date32_scalar_get_value(GArrowDate32Scalar *scalar); 413 414 415 #define GARROW_TYPE_DATE64_SCALAR (garrow_date64_scalar_get_type()) 416 G_DECLARE_DERIVABLE_TYPE(GArrowDate64Scalar, 417 garrow_date64_scalar, 418 GARROW, 419 DATE64_SCALAR, 420 GArrowScalar) 421 struct _GArrowDate64ScalarClass 422 { 423 GArrowScalarClass parent_class; 424 }; 425 426 GARROW_AVAILABLE_IN_5_0 427 GArrowDate64Scalar * 428 garrow_date64_scalar_new(gint64 value); 429 GARROW_AVAILABLE_IN_5_0 430 gint64 431 garrow_date64_scalar_get_value(GArrowDate64Scalar *scalar); 432 433 434 #define GARROW_TYPE_TIME32_SCALAR (garrow_time32_scalar_get_type()) 435 G_DECLARE_DERIVABLE_TYPE(GArrowTime32Scalar, 436 garrow_time32_scalar, 437 GARROW, 438 TIME32_SCALAR, 439 GArrowScalar) 440 struct _GArrowTime32ScalarClass 441 { 442 GArrowScalarClass parent_class; 443 }; 444 445 GARROW_AVAILABLE_IN_5_0 446 GArrowTime32Scalar * 447 garrow_time32_scalar_new(GArrowTime32DataType *data_type, 448 gint32 value); 449 GARROW_AVAILABLE_IN_5_0 450 gint32 451 garrow_time32_scalar_get_value(GArrowTime32Scalar *scalar); 452 453 454 #define GARROW_TYPE_TIME64_SCALAR (garrow_time64_scalar_get_type()) 455 G_DECLARE_DERIVABLE_TYPE(GArrowTime64Scalar, 456 garrow_time64_scalar, 457 GARROW, 458 TIME64_SCALAR, 459 GArrowScalar) 460 struct _GArrowTime64ScalarClass 461 { 462 GArrowScalarClass parent_class; 463 }; 464 465 GARROW_AVAILABLE_IN_5_0 466 GArrowTime64Scalar * 467 garrow_time64_scalar_new(GArrowTime64DataType *data_type, 468 gint64 value); 469 GARROW_AVAILABLE_IN_5_0 470 gint64 471 garrow_time64_scalar_get_value(GArrowTime64Scalar *scalar); 472 473 474 #define GARROW_TYPE_TIMESTAMP_SCALAR (garrow_timestamp_scalar_get_type()) 475 G_DECLARE_DERIVABLE_TYPE(GArrowTimestampScalar, 476 garrow_timestamp_scalar, 477 GARROW, 478 TIMESTAMP_SCALAR, 479 GArrowScalar) 480 struct _GArrowTimestampScalarClass 481 { 482 GArrowScalarClass parent_class; 483 }; 484 485 GARROW_AVAILABLE_IN_5_0 486 GArrowTimestampScalar * 487 garrow_timestamp_scalar_new(GArrowTimestampDataType *data_type, 488 gint64 value); 489 GARROW_AVAILABLE_IN_5_0 490 gint64 491 garrow_timestamp_scalar_get_value(GArrowTimestampScalar *scalar); 492 493 494 #define GARROW_TYPE_DECIMAL128_SCALAR (garrow_decimal128_scalar_get_type()) 495 G_DECLARE_DERIVABLE_TYPE(GArrowDecimal128Scalar, 496 garrow_decimal128_scalar, 497 GARROW, 498 DECIMAL128_SCALAR, 499 GArrowScalar) 500 struct _GArrowDecimal128ScalarClass 501 { 502 GArrowScalarClass parent_class; 503 }; 504 505 GARROW_AVAILABLE_IN_5_0 506 GArrowDecimal128Scalar * 507 garrow_decimal128_scalar_new(GArrowDecimal128DataType *data_type, 508 GArrowDecimal128 *value); 509 GARROW_AVAILABLE_IN_5_0 510 GArrowDecimal128 * 511 garrow_decimal128_scalar_get_value(GArrowDecimal128Scalar *scalar); 512 513 514 #define GARROW_TYPE_DECIMAL256_SCALAR (garrow_decimal256_scalar_get_type()) 515 G_DECLARE_DERIVABLE_TYPE(GArrowDecimal256Scalar, 516 garrow_decimal256_scalar, 517 GARROW, 518 DECIMAL256_SCALAR, 519 GArrowScalar) 520 struct _GArrowDecimal256ScalarClass 521 { 522 GArrowScalarClass parent_class; 523 }; 524 525 GARROW_AVAILABLE_IN_5_0 526 GArrowDecimal256Scalar * 527 garrow_decimal256_scalar_new(GArrowDecimal256DataType *data_type, 528 GArrowDecimal256 *value); 529 GARROW_AVAILABLE_IN_5_0 530 GArrowDecimal256 * 531 garrow_decimal256_scalar_get_value(GArrowDecimal256Scalar *scalar); 532 533 534 #define GARROW_TYPE_BASE_LIST_SCALAR (garrow_base_list_scalar_get_type()) 535 G_DECLARE_DERIVABLE_TYPE(GArrowBaseListScalar, 536 garrow_base_list_scalar, 537 GARROW, 538 BASE_LIST_SCALAR, 539 GArrowScalar) 540 struct _GArrowBaseListScalarClass 541 { 542 GArrowScalarClass parent_class; 543 }; 544 545 GARROW_AVAILABLE_IN_5_0 546 GArrowArray * 547 garrow_base_list_scalar_get_value(GArrowBaseListScalar *scalar); 548 549 #define GARROW_TYPE_LIST_SCALAR (garrow_list_scalar_get_type()) 550 G_DECLARE_DERIVABLE_TYPE(GArrowListScalar, 551 garrow_list_scalar, 552 GARROW, 553 LIST_SCALAR, 554 GArrowBaseListScalar) 555 struct _GArrowListScalarClass 556 { 557 GArrowBaseListScalarClass parent_class; 558 }; 559 560 GARROW_AVAILABLE_IN_5_0 561 GArrowListScalar * 562 garrow_list_scalar_new(GArrowListArray *value); 563 564 565 #define GARROW_TYPE_LARGE_LIST_SCALAR (garrow_large_list_scalar_get_type()) 566 G_DECLARE_DERIVABLE_TYPE(GArrowLargeListScalar, 567 garrow_large_list_scalar, 568 GARROW, 569 LARGE_LIST_SCALAR, 570 GArrowBaseListScalar) 571 struct _GArrowLargeListScalarClass 572 { 573 GArrowBaseListScalarClass parent_class; 574 }; 575 576 GARROW_AVAILABLE_IN_5_0 577 GArrowLargeListScalar * 578 garrow_large_list_scalar_new(GArrowLargeListArray *value); 579 580 581 #define GARROW_TYPE_MAP_SCALAR (garrow_map_scalar_get_type()) 582 G_DECLARE_DERIVABLE_TYPE(GArrowMapScalar, 583 garrow_map_scalar, 584 GARROW, 585 MAP_SCALAR, 586 GArrowBaseListScalar) 587 struct _GArrowMapScalarClass 588 { 589 GArrowBaseListScalarClass parent_class; 590 }; 591 592 GARROW_AVAILABLE_IN_5_0 593 GArrowMapScalar * 594 garrow_map_scalar_new(GArrowStructArray *value); 595 596 597 #define GARROW_TYPE_STRUCT_SCALAR (garrow_struct_scalar_get_type()) 598 G_DECLARE_DERIVABLE_TYPE(GArrowStructScalar, 599 garrow_struct_scalar, 600 GARROW, 601 STRUCT_SCALAR, 602 GArrowScalar) 603 struct _GArrowStructScalarClass 604 { 605 GArrowScalarClass parent_class; 606 }; 607 608 GARROW_AVAILABLE_IN_5_0 609 GArrowStructScalar * 610 garrow_struct_scalar_new(GArrowStructDataType *data_type, 611 GList *value); 612 GARROW_AVAILABLE_IN_5_0 613 GList * 614 garrow_struct_scalar_get_value(GArrowStructScalar *scalar); 615 616 617 #define GARROW_TYPE_UNION_SCALAR (garrow_union_scalar_get_type()) 618 G_DECLARE_DERIVABLE_TYPE(GArrowUnionScalar, 619 garrow_union_scalar, 620 GARROW, 621 UNION_SCALAR, 622 GArrowScalar) 623 struct _GArrowUnionScalarClass 624 { 625 GArrowScalarClass parent_class; 626 }; 627 628 GARROW_AVAILABLE_IN_6_0 629 gint8 630 garrow_union_scalar_get_type_code(GArrowUnionScalar *scalar); 631 GARROW_AVAILABLE_IN_5_0 632 GArrowScalar * 633 garrow_union_scalar_get_value(GArrowUnionScalar *scalar); 634 635 636 #define GARROW_TYPE_SPARSE_UNION_SCALAR (garrow_sparse_union_scalar_get_type()) 637 G_DECLARE_DERIVABLE_TYPE(GArrowSparseUnionScalar, 638 garrow_sparse_union_scalar, 639 GARROW, 640 SPARSE_UNION_SCALAR, 641 GArrowUnionScalar) 642 struct _GArrowSparseUnionScalarClass 643 { 644 GArrowUnionScalarClass parent_class; 645 }; 646 647 GARROW_AVAILABLE_IN_5_0 648 GArrowSparseUnionScalar * 649 garrow_sparse_union_scalar_new(GArrowSparseUnionDataType *data_type, 650 gint8 type_code, 651 GArrowScalar *value); 652 653 654 #define GARROW_TYPE_DENSE_UNION_SCALAR (garrow_dense_union_scalar_get_type()) 655 G_DECLARE_DERIVABLE_TYPE(GArrowDenseUnionScalar, 656 garrow_dense_union_scalar, 657 GARROW, 658 DENSE_UNION_SCALAR, 659 GArrowUnionScalar) 660 struct _GArrowDenseUnionScalarClass 661 { 662 GArrowUnionScalarClass parent_class; 663 }; 664 665 GARROW_AVAILABLE_IN_5_0 666 GArrowDenseUnionScalar * 667 garrow_dense_union_scalar_new(GArrowDenseUnionDataType *data_type, 668 gint8 type_code, 669 GArrowScalar *value); 670 671 672 #define GARROW_TYPE_EXTENSION_SCALAR (garrow_extension_scalar_get_type()) 673 G_DECLARE_DERIVABLE_TYPE(GArrowExtensionScalar, 674 garrow_extension_scalar, 675 GARROW, 676 EXTENSION_SCALAR, 677 GArrowScalar) 678 struct _GArrowExtensionScalarClass 679 { 680 GArrowScalarClass parent_class; 681 }; 682 683 G_END_DECLS 684