# 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.
# cython: language_level = 3
from libc.stdint cimport uint8_t, int64_t
from nanoarrow_c cimport (
ArrowSchema,
ArrowArray,
ArrowArrayStream,
ArrowArrayView,
ArrowBuffer,
ArrowError
)
from nanoarrow_device_c cimport ArrowDeviceArray
cdef object alloc_c_schema(ArrowSchema** c_schema)
cdef object alloc_c_array(ArrowArray** c_array)
cdef object alloc_c_array_stream(ArrowArrayStream** c_stream)
cdef object alloc_c_device_array(ArrowDeviceArray** c_device_array)
cdef object alloc_c_array_view(ArrowArrayView** c_array_view)
cdef object alloc_c_buffer(ArrowBuffer** c_buffer)
cdef void c_array_shallow_copy(object base, const ArrowArray* src, ArrowArray* dst)
cdef void c_device_array_shallow_copy(object base, const ArrowDeviceArray* src,
ArrowDeviceArray* dst)
cdef object c_buffer_set_pybuffer(object obj, ArrowBuffer** c_buffer)
cdef void c_buffer_set_pyobject(object base, uint8_t* data, int64_t size_bytes, ArrowBuffer** c_buffer)
cdef class Error:
cdef ArrowError c_error
cdef raise_message(self, what, code)
cdef raise_message_not_ok(self, what, code)
@staticmethod
cdef raise_error(what, code)
@staticmethod
cdef raise_error_not_ok(what, code)