dart-lang / dart-lang/native

Helpers for constructing JNI signatures

Open
#770 7 comments 0 reactions 0 assignees View on GitHub
package:jni package:jnigen
Dominant language
Dart
Stars
275
Forks
144
Avg merge
2d 10h
Merged PRs (30d)
47

Description

To construct strings such as `"I(I)"` we could add some helper code that could construct them from Dart function types.

```dart
String typeToJavaSignature() {
final splitOnArrow = T.toString().split(' => ');
final returnType = splitOnArrow[1];
final arguments = splitOnArrow[0];
final argumentsTrimmed = arguments.substring(1, arguments.length - 1);
final argumentTypes = argumentsTrimmed.split(', ');
final javaReturn = dartTypeToJavaSignatureType[returnType]!;
final javaArguments =
argumentTypes.map((e) => dartTypeToJavaSignatureType[e]!).join(',');
return '($javaArguments)$javaReturn';
}
```

```dart
final javaSignature = typeToJavaSignature();
```

The is probably not general enough, but maybe it would be a nice addition to the jni interface over having users having to construct the strings themselves.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.