///|
/// An owned immutable byte sequence, copied from/to an independent ArrayBuffer.
pub struct NapiArrayBuffer {
priv data : Bytes
}
///|
pub fn NapiArrayBuffer::from_bytes(data : Bytes) -> NapiArrayBuffer {
{ data, }
}
///|
pub fn NapiArrayBuffer::to_bytes(self : NapiArrayBuffer) -> Bytes {
self.data
}
///|
pub fn NapiArrayBuffer::byte_length(self : NapiArrayBuffer) -> Int32 {
self.data.length()
}
///|
#borrow(status)
extern "c" fn napi_read_ArrayBuffer(
env : NapiEnv,
value : NapiValue,
status : Ref[Int32],
) -> Bytes = "moonbit_napi_read_ArrayBuffer"
///|
#borrow(data, result)
extern "c" fn napi_write_ArrayBuffer(
env : NapiEnv,
data : Bytes,
result : Ref[NapiValue],
) -> Int32 = "moonbit_napi_write_ArrayBuffer"
///|
pub fn get_NapiArrayBuffer(
env : NapiEnv,
value : NapiValue,
) -> NapiArrayBuffer raise NapiError {
let status = Ref(0)
let data = napi_read_ArrayBuffer(env, value, status)
result_from_status(env, status.val, b"Reading owned ArrayBuffer")
{ data, }
}
///|
pub fn set_NapiArrayBuffer(
env : NapiEnv,
value : NapiArrayBuffer,
) -> NapiValue raise NapiError {
let result = Ref(moonbit_dummy_napi_value())
result_from_status(
env,
napi_write_ArrayBuffer(env, value.data, result),
b"Writing owned ArrayBuffer",
)
result.val
}