Skip to content

Commit

Permalink
Merge pull request #261 from Desdaemon/master
Browse files Browse the repository at this point in the history
Marker attributes
  • Loading branch information
fzyzcjy authored Dec 30, 2021
2 parents c3497e7 + 409acd9 commit 873a3c8
Show file tree
Hide file tree
Showing 14 changed files with 455 additions and 70 deletions.
71 changes: 71 additions & 0 deletions frb_example/pure_dart/dart/lib/bridge_generated.dart
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ abstract class FlutterRustBridgeExample extends FlutterRustBridgeBase<FlutterRus
Future<Foobar> handleEnumStruct({required Foobar val, dynamic hint});

Future<String> handleComplexEnum({required KitchenSink val, dynamic hint});

Future<void> handleCustomizedStruct({required Customized val, dynamic hint});
}

class Attribute {
Expand All @@ -96,6 +98,18 @@ class Attribute {
});
}

class Customized {
final String finalField;

/// Not implemented yet, placeholder only
final String? nonFinalField;

Customized({
required this.finalField,
this.nonFinalField,
});
}

class Element {
final String? tag;
final String? text;
Expand Down Expand Up @@ -581,6 +595,17 @@ class FlutterRustBridgeExampleImpl extends FlutterRustBridgeExample {
hint: hint,
));

Future<void> handleCustomizedStruct({required Customized val, dynamic hint}) => executeNormal(FlutterRustBridgeTask(
callFfi: (port) => inner.wire_handle_customized_struct(port, _api2wire_box_autoadd_customized(val)),
parseSuccessData: _wire2api_unit,
constMeta: const FlutterRustBridgeTaskConstMeta(
debugName: "handle_customized_struct",
argNames: ["val"],
),
argValues: [val],
hint: hint,
));

// Section: api2wire
ffi.Pointer<wire_uint_8_list> _api2wire_String(String raw) {
return _api2wire_uint_8_list(utf8.encoder.convert(raw));
Expand Down Expand Up @@ -612,6 +637,12 @@ class FlutterRustBridgeExampleImpl extends FlutterRustBridgeExample {
return inner.new_box_autoadd_bool(raw);
}

ffi.Pointer<wire_Customized> _api2wire_box_autoadd_customized(Customized raw) {
final ptr = inner.new_box_autoadd_customized();
_api_fill_to_wire_customized(raw, ptr.ref);
return ptr;
}

ffi.Pointer<wire_ExoticOptionals> _api2wire_box_autoadd_exotic_optionals(ExoticOptionals raw) {
final ptr = inner.new_box_autoadd_exotic_optionals();
_api_fill_to_wire_exotic_optionals(raw, ptr.ref);
Expand Down Expand Up @@ -909,6 +940,10 @@ class FlutterRustBridgeExampleImpl extends FlutterRustBridgeExample {
_api_fill_to_wire_attribute(apiObj, wireObj.ref);
}

void _api_fill_to_wire_box_autoadd_customized(Customized apiObj, ffi.Pointer<wire_Customized> wireObj) {
_api_fill_to_wire_customized(apiObj, wireObj.ref);
}

void _api_fill_to_wire_box_autoadd_exotic_optionals(
ExoticOptionals apiObj, ffi.Pointer<wire_ExoticOptionals> wireObj) {
_api_fill_to_wire_exotic_optionals(apiObj, wireObj.ref);
Expand Down Expand Up @@ -946,6 +981,11 @@ class FlutterRustBridgeExampleImpl extends FlutterRustBridgeExample {
_api_fill_to_wire_my_size(apiObj, wireObj.ref);
}

void _api_fill_to_wire_customized(Customized apiObj, wire_Customized wireObj) {
wireObj.final_field = _api2wire_String(apiObj.finalField);
wireObj.non_final_field = _api2wire_opt_String(apiObj.nonFinalField);
}

void _api_fill_to_wire_exotic_optionals(ExoticOptionals apiObj, wire_ExoticOptionals wireObj) {
wireObj.int32 = _api2wire_opt_box_autoadd_i32(apiObj.int32);
wireObj.int64 = _api2wire_opt_box_autoadd_i64(apiObj.int64);
Expand Down Expand Up @@ -1881,6 +1921,22 @@ class FlutterRustBridgeExampleWire implements FlutterRustBridgeWireBase {
late final _wire_handle_complex_enum =
_wire_handle_complex_enumPtr.asFunction<void Function(int, ffi.Pointer<wire_KitchenSink>)>();

void wire_handle_customized_struct(
int port,
ffi.Pointer<wire_Customized> val,
) {
return _wire_handle_customized_struct(
port,
val,
);
}

late final _wire_handle_customized_structPtr =
_lookup<ffi.NativeFunction<ffi.Void Function(ffi.Int64, ffi.Pointer<wire_Customized>)>>(
'wire_handle_customized_struct');
late final _wire_handle_customized_struct =
_wire_handle_customized_structPtr.asFunction<void Function(int, ffi.Pointer<wire_Customized>)>();

ffi.Pointer<wire_StringList> new_StringList(
int len,
) {
Expand Down Expand Up @@ -1914,6 +1970,15 @@ class FlutterRustBridgeExampleWire implements FlutterRustBridgeWireBase {
_lookup<ffi.NativeFunction<ffi.Pointer<ffi.Uint8> Function(ffi.Uint8)>>('new_box_autoadd_bool');
late final _new_box_autoadd_bool = _new_box_autoadd_boolPtr.asFunction<ffi.Pointer<ffi.Uint8> Function(int)>();

ffi.Pointer<wire_Customized> new_box_autoadd_customized() {
return _new_box_autoadd_customized();
}

late final _new_box_autoadd_customizedPtr =
_lookup<ffi.NativeFunction<ffi.Pointer<wire_Customized> Function()>>('new_box_autoadd_customized');
late final _new_box_autoadd_customized =
_new_box_autoadd_customizedPtr.asFunction<ffi.Pointer<wire_Customized> Function()>();

ffi.Pointer<wire_ExoticOptionals> new_box_autoadd_exotic_optionals() {
return _new_box_autoadd_exotic_optionals();
}
Expand Down Expand Up @@ -2528,5 +2593,11 @@ class KitchenSink_Structlike extends ffi.Struct {
external ffi.Pointer<ffi.Int32> bar;
}

class wire_Customized extends ffi.Struct {
external ffi.Pointer<wire_uint_8_list> final_field;

external ffi.Pointer<wire_uint_8_list> non_final_field;
}

typedef DartPostCObjectFnType = ffi.Pointer<ffi.NativeFunction<ffi.Uint8 Function(DartPort, ffi.Pointer<ffi.Void>)>>;
typedef DartPort = ffi.Int64;
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target

part of 'bridge_generated.dart';
Expand Down
Loading

0 comments on commit 873a3c8

Please sign in to comment.