Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Marker attributes #261

Merged
merged 4 commits into from
Dec 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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