// This file was autogenerated by the `uniffi-bindgen-gecko-js` crate. // Trust me, you don't want to mess with it! import { ArrayBufferDataStream, FfiConverter, FfiConverterArrayBuffer, FfiConverterInt8, FfiConverterUInt8, FfiConverterInt16, FfiConverterUInt16, FfiConverterInt32, FfiConverterUInt32, FfiConverterInt64, FfiConverterUInt64, FfiConverterFloat32, FfiConverterFloat64, FfiConverterBoolean, FfiConverterBytes, FfiConverterString, UniFFICallbackHandler, UniFFICallbackMethodHandler, UniFFIError, UniFFIInternalError, UniFFITypeError, constructUniffiObject, handleRustResult, uniffiObjectPtr, } from "moz-src:///toolkit/components/uniffi-js/js/UniFFI.sys.mjs"; // Objects intended to be used in the unit tests export var UnitTestObjs = { uniffiObjectPtr, }; /** * invokeCollisionCallback * @param {TestCallbackInterface} cb * @returns {string} */ export function invokeCollisionCallback( cb) { if (cb instanceof UniffiSkipJsTypeCheck) { cb = cb.value; } else { FfiConverterTypeTestCallbackInterface.checkType(cb); } const result = UniFFIScaffolding.callSync( 259, // uniffi_uniffi_bindings_tests_collision_fn_func_invoke_collision_callback FfiConverterTypeTestCallbackInterface.lower(cb), ) return handleRustResult( result, FfiConverterString.lift.bind(FfiConverterString), null, ) } /** * TestCallbackInterface */ export class TestCallbackInterface { /** * getValue * @returns {string} */ getValue() { throw Error("getValue not implemented"); } } // Export the FFIConverter object to make external types work. export class FfiConverterTypeTestCallbackInterface extends FfiConverter { static lower(callbackObj) { if (!(callbackObj instanceof TestCallbackInterface)) { throw new UniFFITypeError("expected 'TestCallbackInterface' subclass"); } return uniffiCallbackHandlerUniffiBindingsTestsCollisionTestCallbackInterface.storeCallbackObj(callbackObj) } static lift(handleId) { return uniffiCallbackHandlerUniffiBindingsTestsCollisionTestCallbackInterface.takeCallbackObj(handleId) } static read(dataStream) { return this.lift(dataStream.readInt64()) } static write(dataStream, callbackObj) { dataStream.writeInt64(this.lower(callbackObj)) } static computeSize(callbackObj) { return 8; } } const uniffiCallbackHandlerUniffiBindingsTestsCollisionTestCallbackInterface = new UniFFICallbackHandler( "TestCallbackInterface", 11, [ new UniFFICallbackMethodHandler( "getValue", [ ], FfiConverterString.lower.bind(FfiConverterString), (e) => { throw e; } ), ] ); // Allow the shutdown-related functionality to be tested in the unit tests UnitTestObjs.uniffiCallbackHandlerUniffiBindingsTestsCollisionTestCallbackInterface = uniffiCallbackHandlerUniffiBindingsTestsCollisionTestCallbackInterface; // Wrapper to skip type checking for function arguments // // This is only defined and used on test fixtures. The goal is to skip the JS type checking so that // we can test the lower-level C++ type checking. export class UniffiSkipJsTypeCheck { constructor(value) { this.value = value; } }