1pub mod buffer;
23pub mod buffer_list;
24pub mod composite;
27pub mod descriptor;
28pub mod field;
29pub mod file;
30pub mod item;
31pub(crate) mod panic;
32pub mod status;
33pub mod stream;
34pub mod sync;
35pub mod tensor;
38
39pub use buffer::{hurray_buffer_from_ptr, HurrayBuffer, HurrayReleaseCallback};
42pub use buffer_list::{hurray_buffer_list_new, HurrayBufferList};
43pub use composite::HurrayCompositeNode;
44pub use descriptor::{hurray_descriptor_decode, HurrayDescriptor};
45pub use field::{
46 hurray_descriptor_field_f64, hurray_descriptor_field_i64, hurray_descriptor_field_i64_array,
47 hurray_descriptor_field_u64, hurray_descriptor_field_u64_array, HurrayDescriptorField,
48};
49pub use file::{
50 hurray_file_reader_destroy, hurray_file_reader_kv_count, hurray_file_reader_kv_entry,
51 hurray_file_reader_new, hurray_file_reader_read_composite, hurray_file_reader_read_descriptor,
52 hurray_file_reader_read_tensor, hurray_file_reader_tensor_count,
53 hurray_file_reader_tensor_name, hurray_file_writer_destroy, hurray_file_writer_finish,
54 hurray_file_writer_new, hurray_file_writer_write_composite, hurray_file_writer_write_tensor,
55 HurrayFileReader, HurrayFileWriter, HurrayFileWriterOptions, HurrayKvEntry, HurrayKvValue,
56 HURRAY_KV_ARRAY, HURRAY_KV_BOOL, HURRAY_KV_BYTES, HURRAY_KV_FLOAT64, HURRAY_KV_INT64,
57 HURRAY_KV_STRING, HURRAY_KV_UINT64,
58};
59pub use item::{
60 hurray_item_destroy, hurray_item_kind, hurray_item_node, hurray_item_node_count, HurrayItem,
61 HurrayItemNode, HURRAY_ITEM_COMPOSITE, HURRAY_ITEM_TENSOR,
62};
63pub use status::{
64 HurrayStatus, HURRAY_END_OF_STREAM, HURRAY_ERR_BUFFER_TOO_SMALL, HURRAY_ERR_CORE_UNUSABLE,
65 HURRAY_ERR_FIELD_NOT_APPLICABLE, HURRAY_ERR_FIELD_NOT_PRESENT, HURRAY_ERR_INDEX_OUT_OF_BOUNDS,
66 HURRAY_ERR_INTERNAL, HURRAY_ERR_INTERNAL_PANIC, HURRAY_ERR_INVALID_FILE,
67 HURRAY_ERR_INVALID_LAYOUT, HURRAY_ERR_INVALID_MAGIC, HURRAY_ERR_INVALID_STREAM,
68 HURRAY_ERR_INVALID_SYNC_MODE, HURRAY_ERR_INVALID_TYPE, HURRAY_ERR_LIMIT_EXCEEDED,
69 HURRAY_ERR_NOT_COMPOSITE, HURRAY_ERR_NOT_FOUND, HURRAY_ERR_NULL_POINTER,
70 HURRAY_ERR_SINK_CLOSED, HURRAY_ERR_SYNC_MODE_MISMATCH, HURRAY_ERR_TRANSPORT,
71 HURRAY_ERR_UNEXPECTED_EOF, HURRAY_ERR_VERSION_MISMATCH, HURRAY_OK,
72};
73pub use stream::{
74 hurray_reader_destroy, hurray_reader_new, hurray_reader_next_item, hurray_reader_next_tensor,
75 hurray_writer_destroy, hurray_writer_new, hurray_writer_write_composite,
76 hurray_writer_write_tensor, HurrayIoSlice, HurrayReader, HurrayReaderOptions, HurrayTransport,
77 HurrayTransportReadAtFn, HurrayTransportReadFn, HurrayTransportReleaseFn,
78 HurrayTransportSizeFn, HurrayTransportWriteFn, HurrayWriter, HurrayWriterOptions,
79};
80pub use sync::{HurrayEventReleaseFn, HurraySyncConsumerStreamPayload, HurraySyncEventPayload};
81pub use tensor::{
82 hurray_tensor_abi_version, hurray_tensor_buffers, hurray_tensor_descriptor,
83 hurray_tensor_destroy, hurray_tensor_new, HurrayOwnerReleaseFn, HurrayTensor,
84};
85
86pub const HURRAY_C_ABI_VERSION: u32 = 10;
101
102#[no_mangle]
112pub extern "C" fn hurray_c_abi_version() -> u32 {
113 HURRAY_C_ABI_VERSION
114}