Source code

Revision control

Copy as Markdown

Other Tools

// 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(
200, // 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.getCallbackObj(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",
7,
[
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;
}
}