// Copyright 2025-present 650 Industries. All rights reserved. internal import ExpoModulesJSI_Cxx /// A borrowed native `MutableBuffer` backing a JavaScript `ArrayBuffer`. /// /// The data pointer and size are captured at borrow time. Resizable or detached /// ArrayBuffers are not supported by this borrowed representation. public struct JavaScriptMutableBuffer: ~Copyable { public let data: UnsafeMutablePointer public let size: Int private let retainer: UnsafeMutableRawPointer internal init(data: UnsafeMutablePointer, size: Int, retainer: UnsafeMutableRawPointer) { self.data = data self.size = size self.retainer = retainer } deinit { expo.releaseBorrowedBuffer(retainer) } }