blob: 05efe573f946b47b04d13a8ec38e1c0526d09b1d [file] [log] [blame]
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// ignore_for_file: invalid_export_of_internal_element
/// This library exports the methods meant for use by generated code only, and
/// not to be used directly.
library;
import 'dart:ffi' as ffi show Int32;
import 'dart:ffi' hide Int32;
// Exporting all the necessary bits for the generated bindings.
export 'dart:ffi'
show
Double,
Int64,
NativeFunction,
NativeFunctionPointer,
NativePort,
Pointer,
VarArgs,
Void,
nullptr;
export 'dart:isolate' show RawReceivePort, ReceivePort;
export 'package:meta/meta.dart' show internal;
export 'src/accessors.dart';
export 'src/jni.dart' show ProtectedJniExtensions;
export 'src/jobject.dart' show $JObject$Type$;
export 'src/jreference.dart';
export 'src/kotlin.dart'
show
KotlinContinuation,
coroutineSingletonsClass,
failureExceptionField,
result$Class,
result$FailureClass,
resultValueField;
export 'src/lang/jboolean.dart';
export 'src/lang/jbyte.dart';
export 'src/lang/jcharacter.dart';
export 'src/lang/jdouble.dart';
export 'src/lang/jfloat.dart';
export 'src/lang/jinteger.dart';
export 'src/lang/jlong.dart';
export 'src/lang/jnumber.dart';
export 'src/lang/jshort.dart';
export 'src/lang/jstring.dart';
export 'src/method_invocation.dart';
export 'src/nio/jbuffer.dart';
export 'src/nio/jbyte_buffer.dart';
export 'src/third_party/generated_bindings.dart'
show JFieldIDPtr, JMethodIDPtr, JObjectPtr, JThrowablePtr, JniResult;
export 'src/types.dart' show JTypeBase;
export 'src/util/jiterator.dart';
export 'src/util/jlist.dart';
export 'src/util/jmap.dart';
export 'src/util/jset.dart';
/// Temporary fix for the macOS arm64 varargs problem.
///
/// This integer type is `Int32` on all architectures, other than macOS arm64.
/// Where it is `Int64`.
@AbiSpecificIntegerMapping({
Abi.androidArm: ffi.Int32(),
Abi.androidArm64: ffi.Int32(),
Abi.androidIA32: ffi.Int32(),
Abi.androidX64: ffi.Int32(),
Abi.androidRiscv64: ffi.Int32(),
Abi.fuchsiaArm64: ffi.Int32(),
Abi.fuchsiaX64: ffi.Int32(),
Abi.fuchsiaRiscv64: ffi.Int32(),
Abi.iosArm: ffi.Int32(),
Abi.iosArm64: ffi.Int32(),
Abi.iosX64: ffi.Int32(),
Abi.linuxArm: ffi.Int32(),
Abi.linuxArm64: ffi.Int32(),
Abi.linuxIA32: ffi.Int32(),
Abi.linuxX64: ffi.Int32(),
Abi.linuxRiscv32: ffi.Int32(),
Abi.linuxRiscv64: ffi.Int32(),
Abi.macosArm64: Int64(), // <-- Only this is different.
Abi.macosX64: ffi.Int32(),
Abi.windowsArm64: ffi.Int32(),
Abi.windowsIA32: ffi.Int32(),
Abi.windowsX64: ffi.Int32(),
})
final class Int32 extends AbiSpecificInteger {
const Int32();
}