Skip to content

Commit 41c5fde

Browse files
committed
Add first lua system
1 parent 80a0b23 commit 41c5fde

20 files changed

+1888
-47
lines changed

plugin/example/lua.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'package:setonix_plugin/setonix_plugin.dart';
2+
3+
Future<void> main() async {
4+
await initPluginSystem();
5+
final callback = await PluginCallback.default_();
6+
await callback.changeOnPrint(
7+
onPrint: (p0) {
8+
print("printed from sandbox ${p0}");
9+
},
10+
);
11+
final luaPlugin = await LuauPlugin(code: '''
12+
print("Hello, World!")
13+
''', callback: callback);
14+
await luaPlugin.run();
15+
}

plugin/lib/events.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
library;
2+
3+
export 'src/events/model.dart';
4+
export 'src/events/system.dart';

plugin/lib/setonix_plugin.dart

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,8 @@
1-
// This file is automatically generated, so please do not edit it.
2-
// @generated by `flutter_rust_bridge`@ 2.7.0.
3-
4-
import 'dart:io';
5-
6-
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
7-
81
import 'src/rust/frb_generated.dart';
9-
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
10-
import 'package:path/path.dart' as path;
112

123
export 'src/rust/api/simple.dart';
13-
14-
const libName = 'libsetonix_plugin.so';
4+
export 'src/rust/api/luau.dart';
5+
export 'events.dart';
156

167
Future<void> initPluginSystem() {
178
return RustLib.init();

plugin/lib/src/event.dart

Whitespace-only changes.

plugin/lib/src/rust/api/luau.dart

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// This file is automatically generated, so please do not edit it.
2+
// @generated by `flutter_rust_bridge`@ 2.7.1.
3+
4+
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
5+
6+
import '../frb_generated.dart';
7+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
8+
9+
// These functions are ignored because they are not marked as `pub`: `construct_globals`, `construct_on_print`
10+
11+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<LuauPlugin>>
12+
abstract class LuauPlugin implements RustOpaqueInterface {
13+
factory LuauPlugin(
14+
{required String code, required PluginCallback callback}) =>
15+
RustLib.instance.api
16+
.crateApiLuauLuauPluginNew(code: code, callback: callback);
17+
18+
Future<void> run();
19+
}
20+
21+
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<PluginCallback>>
22+
abstract class PluginCallback implements RustOpaqueInterface {
23+
Future<void> changeOnPrint(
24+
{required FutureOr<void> Function(String) onPrint});
25+
26+
static Future<PluginCallback> default_() =>
27+
RustLib.instance.api.crateApiLuauPluginCallbackDefault();
28+
}

plugin/lib/src/rust/api/simple.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// This file is automatically generated, so please do not edit it.
2-
// @generated by `flutter_rust_bridge`@ 2.7.0.
2+
// @generated by `flutter_rust_bridge`@ 2.7.1.
33

44
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
55

0 commit comments

Comments
 (0)