ergo/
byte_array.rs

1//! Byte arrays for use in proofs
2
3use ergo_lib_c_core::{
4    util::{byte_array_from_raw_parts, ByteArray, ByteArrayPtr, ConstByteArrayPtr},
5    Error, ErrorPtr,
6};
7use paste::paste;
8
9use crate::delete_ptr;
10
11#[no_mangle]
12pub unsafe extern "C" fn ergo_lib_byte_array_from_raw_parts(
13    ptr: *const u8,
14    len: usize,
15    byte_array_out: *mut ByteArrayPtr,
16) -> ErrorPtr {
17    let res = byte_array_from_raw_parts(ptr, len, byte_array_out);
18    Error::c_api_from(res)
19}
20
21#[no_mangle]
22pub unsafe extern "C" fn ergo_lib_byte_array_delete(ptr: ByteArrayPtr) {
23    delete_ptr(ptr)
24}
25
26make_collection!(ByteArrays, ByteArray);