diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index c60a52dc..e085d6a3 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,7 +1,7 @@ # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: kodjodevf +patreon: # open_collective: # Replace with a single Open Collective username ko_fi: # tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel diff --git a/lib/modules/manga/reader/double_columm_view_center.dart b/lib/modules/manga/reader/double_columm_view_center.dart index d156ea13..9ab45009 100644 --- a/lib/modules/manga/reader/double_columm_view_center.dart +++ b/lib/modules/manga/reader/double_columm_view_center.dart @@ -2,7 +2,7 @@ import 'package:extended_image/extended_image.dart'; import 'package:flutter/material.dart'; import 'package:mangayomi/main.dart'; import 'package:mangayomi/models/settings.dart'; -import 'package:mangayomi/modules/manga/reader/image_view_center.dart'; +import 'package:mangayomi/modules/manga/reader/image_view_paged.dart'; import 'package:mangayomi/modules/manga/reader/reader_view.dart'; import 'package:mangayomi/modules/manga/reader/widgets/circular_progress_indicator_animate_rotate.dart'; import 'package:mangayomi/modules/more/settings/reader/reader_screen.dart'; @@ -124,7 +124,7 @@ class _DoubleColummViewState extends State children: [ if (widget.datas[0] != null) Flexible( - child: ImageViewCenter( + child: ImageViewPaged( data: widget.datas[0]!, loadStateChanged: (state) { if (state.extendedImageLoadState == @@ -202,7 +202,7 @@ class _DoubleColummViewState extends State // if (widget.datas[1] != null) const SizedBox(width: 10), if (widget.datas[1] != null) Flexible( - child: ImageViewCenter( + child: ImageViewPaged( data: widget.datas[1]!, loadStateChanged: (state) { if (state.extendedImageLoadState == diff --git a/lib/modules/manga/reader/double_columm_view_vertical.dart b/lib/modules/manga/reader/double_columm_view_vertical.dart index 594fe2d2..9116c4ae 100644 --- a/lib/modules/manga/reader/double_columm_view_vertical.dart +++ b/lib/modules/manga/reader/double_columm_view_vertical.dart @@ -1,7 +1,7 @@ import 'package:extended_image/extended_image.dart'; import 'package:flutter/material.dart'; import 'package:mangayomi/models/settings.dart'; -import 'package:mangayomi/modules/manga/reader/image_view_center.dart'; +import 'package:mangayomi/modules/manga/reader/image_view_paged.dart'; import 'package:mangayomi/modules/manga/reader/reader_view.dart'; import 'package:mangayomi/modules/manga/reader/widgets/circular_progress_indicator_animate_rotate.dart'; import 'package:mangayomi/modules/more/settings/reader/reader_screen.dart'; @@ -35,7 +35,7 @@ class DoubleColummVerticalView extends StatelessWidget { children: [ if (datas[0] != null) Flexible( - child: ImageViewCenter( + child: ImageViewPaged( data: datas[0]!, loadStateChanged: (state) { if (state.extendedImageLoadState == LoadState.loading) { @@ -106,7 +106,7 @@ class DoubleColummVerticalView extends StatelessWidget { // if (datas[1] != null) const SizedBox(width: 10), if (datas[1] != null) Flexible( - child: ImageViewCenter( + child: ImageViewPaged( data: datas[1]!, loadStateChanged: (state) { if (state.extendedImageLoadState == LoadState.loading) { diff --git a/lib/modules/manga/reader/image_view_center.dart b/lib/modules/manga/reader/image_view_paged.dart similarity index 92% rename from lib/modules/manga/reader/image_view_center.dart rename to lib/modules/manga/reader/image_view_paged.dart index 248b9d32..9f59801f 100644 --- a/lib/modules/manga/reader/image_view_center.dart +++ b/lib/modules/manga/reader/image_view_paged.dart @@ -7,14 +7,14 @@ import 'package:mangayomi/modules/manga/reader/widgets/color_filter_widget.dart' import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_provider.dart'; import 'package:mangayomi/utils/extensions/others.dart'; -class ImageViewCenter extends ConsumerWidget { +class ImageViewPaged extends ConsumerWidget { final UChapDataPreload data; final Function(UChapDataPreload data) onLongPressData; final Widget? Function(ExtendedImageState state) loadStateChanged; final Function(ExtendedImageGestureState state)? onDoubleTap; final GestureConfig Function(ExtendedImageState state)? initGestureConfigHandler; - const ImageViewCenter({ + const ImageViewPaged({ super.key, required this.data, required this.onLongPressData, @@ -25,10 +25,6 @@ class ImageViewCenter extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - return _imageView(ref); - } - - Widget _imageView(WidgetRef ref) { final scaleType = ref.watch(scaleTypeStateProvider); final image = data.getImageProvider(ref); return GestureDetector( diff --git a/lib/modules/manga/reader/image_view_vertical.dart b/lib/modules/manga/reader/image_view_vertical.dart index e75393ac..626b124c 100644 --- a/lib/modules/manga/reader/image_view_vertical.dart +++ b/lib/modules/manga/reader/image_view_vertical.dart @@ -26,18 +26,11 @@ class ImageViewVertical extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - return _imageView(context, ref); - } - - Widget _imageView(BuildContext context, WidgetRef ref) { - final image = data.getImageProvider(ref); - final scaleType = ref.watch(scaleTypeStateProvider); - final l10n = l10nLocalizations(context)!; final imageWidget = ExtendedImage( - image: image, + image: data.getImageProvider(ref), filterQuality: FilterQuality.medium, handleLoadingProgress: true, - fit: getBoxFit(scaleType), + fit: getBoxFit(ref.watch(scaleTypeStateProvider)), enableMemoryCache: true, enableLoadState: true, loadStateChanged: (state) { @@ -66,7 +59,7 @@ class ImageViewVertical extends ConsumerWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Text(l10n.image_loading_error, + Text(context.l10n.image_loading_error, style: TextStyle(color: Colors.white.withOpacity(0.7))), Padding( padding: const EdgeInsets.all(8.0), @@ -87,7 +80,7 @@ class ImageViewVertical extends ConsumerWidget { padding: const EdgeInsets.symmetric( vertical: 8, horizontal: 16), child: Text( - l10n.retry, + context.l10n.retry, ), ), )), diff --git a/lib/modules/manga/reader/providers/crop_borders_provider.dart b/lib/modules/manga/reader/providers/crop_borders_provider.dart index 3260c575..5fc114a6 100644 --- a/lib/modules/manga/reader/providers/crop_borders_provider.dart +++ b/lib/modules/manga/reader/providers/crop_borders_provider.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:mangayomi/modules/manga/reader/reader_view.dart'; -import 'package:mangayomi/src/rust/api/imagecrop.dart'; +import 'package:mangayomi/src/rust/api/image.dart'; import 'package:mangayomi/utils/extensions/others.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'crop_borders_provider.g.dart'; @@ -18,7 +18,7 @@ Future cropBorders(CropBordersRef ref, return null; } - return await startCropping(image: imageBytes); + return processCropImage(image: imageBytes); } return null; } diff --git a/lib/modules/manga/reader/reader_view.dart b/lib/modules/manga/reader/reader_view.dart index 6a5adcb7..0c799703 100644 --- a/lib/modules/manga/reader/reader_view.dart +++ b/lib/modules/manga/reader/reader_view.dart @@ -31,7 +31,7 @@ import 'package:mangayomi/utils/extensions/build_context_extensions.dart'; import 'package:mangayomi/utils/extensions/others.dart'; import 'package:mangayomi/utils/global_style.dart'; import 'package:mangayomi/utils/headers.dart'; -import 'package:mangayomi/modules/manga/reader/image_view_center.dart'; +import 'package:mangayomi/modules/manga/reader/image_view_paged.dart'; import 'package:mangayomi/modules/manga/reader/image_view_vertical.dart'; import 'package:mangayomi/modules/manga/reader/providers/reader_controller_provider.dart'; import 'package:mangayomi/modules/manga/reader/widgets/circular_progress_indicator_animate_rotate.dart'; @@ -653,7 +653,7 @@ class _MangaChapterPageGalleryState }, itemBuilder: (BuildContext context, int index) { - return ImageViewCenter( + return ImageViewPaged( data: _uChapDataPreload[index], loadStateChanged: (state) { if (state.extendedImageLoadState == diff --git a/lib/modules/manga/reader/widgets/btn_chapter_list_dialog.dart b/lib/modules/manga/reader/widgets/btn_chapter_list_dialog.dart index 9186327c..f3a1cfae 100644 --- a/lib/modules/manga/reader/widgets/btn_chapter_list_dialog.dart +++ b/lib/modules/manga/reader/widgets/btn_chapter_list_dialog.dart @@ -61,7 +61,7 @@ class _ChapterListWidgetState extends State { @override Widget build(BuildContext context) { return Scrollbar( - interactive: true, + interactive: true, thickness: 12, radius: const Radius.circular(10), controller: controller, @@ -111,8 +111,10 @@ class _ChapterListTileState extends State { selectedColor: chapter.isRead! ? Colors.white.withOpacity(0.3) : Colors.white, onTap: () async { - Navigator.pop(context); - pushReplacementMangaReaderView(context: context, chapter: chapter); + if (!widget.currentChap) { + Navigator.pop(context); + pushReplacementMangaReaderView(context: context, chapter: chapter); + } }, title: Text( chapter.name!, diff --git a/lib/src/rust/api/imagecrop.dart b/lib/src/rust/api/image.dart similarity index 50% rename from lib/src/rust/api/imagecrop.dart rename to lib/src/rust/api/image.dart index b24877f0..802b80f3 100644 --- a/lib/src/rust/api/imagecrop.dart +++ b/lib/src/rust/api/image.dart @@ -1,12 +1,12 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import import '../frb_generated.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; -// The functions `crop_image` are not `pub`, thus are ignored. +// These functions are ignored because they are not marked as `pub`: `crop_image` -Future startCropping({required List image}) => - RustLib.instance.api.crateApiImagecropStartCropping(image: image); +Uint8List processCropImage({required List image}) => + RustLib.instance.api.crateApiImageProcessCropImage(image: image); diff --git a/lib/src/rust/frb_generated.dart b/lib/src/rust/frb_generated.dart index d06ec9a0..14daf2fc 100644 --- a/lib/src/rust/frb_generated.dart +++ b/lib/src/rust/frb_generated.dart @@ -1,11 +1,12 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field -import 'api/imagecrop.dart'; +import 'api/image.dart'; import 'dart:async'; import 'dart:convert'; +import 'frb_generated.dart'; import 'frb_generated.io.dart' if (dart.library.html) 'frb_generated.web.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; @@ -51,10 +52,10 @@ class RustLib extends BaseEntrypoint { kDefaultExternalLibraryLoaderConfig; @override - String get codegenVersion => '2.0.0-dev.37'; + String get codegenVersion => '2.0.0-dev.39'; @override - int get rustContentHash => -560186126; + int get rustContentHash => -287789500; static const kDefaultExternalLibraryLoaderConfig = ExternalLibraryLoaderConfig( @@ -65,7 +66,7 @@ class RustLib extends BaseEntrypoint { } abstract class RustLibApi extends BaseApi { - Future crateApiImagecropStartCropping({required List image}); + Uint8List crateApiImageProcessCropImage({required List image}); } class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @@ -77,27 +78,26 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }); @override - Future crateApiImagecropStartCropping({required List image}) { - return handler.executeNormal(NormalTask( - callFfi: (port_) { + Uint8List crateApiImageProcessCropImage({required List image}) { + return handler.executeSync(SyncTask( + callFfi: () { final serializer = SseSerializer(generalizedFrbRustBinding); sse_encode_list_prim_u_8_loose(image, serializer); - pdeCallFfi(generalizedFrbRustBinding, serializer, - funcId: 1, port: port_); + return pdeCallFfi(generalizedFrbRustBinding, serializer, funcId: 1)!; }, codec: SseCodec( decodeSuccessData: sse_decode_list_prim_u_8_strict, decodeErrorData: null, ), - constMeta: kCrateApiImagecropStartCroppingConstMeta, + constMeta: kCrateApiImageProcessCropImageConstMeta, argValues: [image], apiImpl: this, )); } - TaskConstMeta get kCrateApiImagecropStartCroppingConstMeta => + TaskConstMeta get kCrateApiImageProcessCropImageConstMeta => const TaskConstMeta( - debugName: "start_cropping", + debugName: "process_crop_image", argNames: ["image"], ); diff --git a/lib/src/rust/frb_generated.io.dart b/lib/src/rust/frb_generated.io.dart index 528f9200..92f0ad0a 100644 --- a/lib/src/rust/frb_generated.io.dart +++ b/lib/src/rust/frb_generated.io.dart @@ -1,9 +1,9 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field -import 'api/imagecrop.dart'; +import 'api/image.dart'; import 'dart:async'; import 'dart:convert'; import 'dart:ffi' as ffi; diff --git a/lib/src/rust/frb_generated.web.dart b/lib/src/rust/frb_generated.web.dart index 04ab6177..8e0fcd64 100644 --- a/lib/src/rust/frb_generated.web.dart +++ b/lib/src/rust/frb_generated.web.dart @@ -1,12 +1,12 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field // Static analysis wrongly picks the IO variant, thus ignore this // ignore_for_file: argument_type_not_assignable -import 'api/imagecrop.dart'; +import 'api/image.dart'; import 'dart:async'; import 'dart:convert'; import 'frb_generated.dart'; @@ -81,10 +81,4 @@ external RustLibWasmModule get wasmModule; @JS() @anonymous -class RustLibWasmModule implements WasmModule { - @override - external Object /* Promise */ call([String? moduleName]); - - @override - external RustLibWasmModule bind(dynamic thisArg, String moduleName); -} +extension type RustLibWasmModule._(JSObject _) implements JSObject {} diff --git a/pubspec.lock b/pubspec.lock index 6c471e63..f52e514c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -528,10 +528,10 @@ packages: dependency: "direct main" description: name: flutter_rust_bridge - sha256: d8a8419099180408b224235e2e2aa386b67ebfd59cc65610d618bb06fb640954 + sha256: ee0d9798156ba523ca24bfb690efd15614f823685df270447c480dd5923d9a0b url: "https://pub.dev" source: hosted - version: "2.0.0-dev.37" + version: "2.0.0-dev.39" flutter_test: dependency: "direct dev" description: flutter diff --git a/pubspec.yaml b/pubspec.yaml index e70c5254..6ddcc8de 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -79,7 +79,7 @@ dependencies: highlight: ^0.7.0 json_view: ^0.4.2 super_sliver_list: ^0.4.1 - flutter_rust_bridge: ^2.0.0-dev.37 + flutter_rust_bridge: ^2.0.0-dev.39 rust_lib_mangayomi: path: rust_builder @@ -88,6 +88,7 @@ dependency_overrides: ffi: ^2.1.2 flex_seed_scheme: ^2.0.0 analyzer: ">=5.2.0 <7.0.0" + html: ^0.15.4 dev_dependencies: flutter_test: diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 450ee524..f4cc86ab 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -34,9 +34,9 @@ checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" [[package]] name = "allo-isolate" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f5a5fd28223e6f3cafb7d9cd685f51eafdd71d33ca1229f8316925d5957240" +checksum = "97b6d794345b06592d0ebeed8e477e41b71e5a0a49df4fc0e4184d5938b99509" dependencies = [ "anyhow", "atomic", @@ -158,6 +158,15 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "build-target" version = "0.4.0" @@ -276,6 +285,16 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "dart-sys-fork" version = "4.1.1" @@ -306,6 +325,16 @@ dependencies = [ "syn", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "either" version = "1.12.0" @@ -374,9 +403,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge" -version = "2.0.0-dev.37" +version = "2.0.0-dev.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc10f01bad9c10018ecd7c998b35d37e6856ffc62b735ef796c617e2006bf00" +checksum = "92c9a3d358c2df51ac5ab05440334a63d7e2ce3229ca05d285769498bfe7fb8d" dependencies = [ "allo-isolate", "android_logger", @@ -401,11 +430,13 @@ dependencies = [ [[package]] name = "flutter_rust_bridge_macros" -version = "2.0.0-dev.37" +version = "2.0.0-dev.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728da530efd18249b5adda2b932a69f92c1d861c18d93dd8b6b9d6df0a2a7d27" +checksum = "7c73c8b391f3c0aed00493871aee6541c03d117d553fa5c121f126dfbbad5157" dependencies = [ "hex", + "md-5", + "proc-macro2", "quote", "syn", ] @@ -499,6 +530,16 @@ dependencies = [ "slab", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.14" @@ -717,6 +758,16 @@ dependencies = [ "rayon", ] +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + [[package]] name = "memchr" version = "2.6.4" @@ -1283,6 +1334,12 @@ dependencies = [ "winnow", ] +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -1306,6 +1363,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index c7e15f7a..c8b0e3ed 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" crate-type = ["cdylib", "staticlib"] [dependencies] -flutter_rust_bridge = "=2.0.0-dev.37" +flutter_rust_bridge = "=2.0.0-dev.39" image = "0.25.0" diff --git a/rust/src/api/imagecrop.rs b/rust/src/api/image.rs similarity index 90% rename from rust/src/api/imagecrop.rs rename to rust/src/api/image.rs index aa4ce4d0..6eb77a60 100644 --- a/rust/src/api/imagecrop.rs +++ b/rust/src/api/image.rs @@ -1,3 +1,4 @@ +use flutter_rust_bridge::frb; use image::{DynamicImage, GenericImageView, Pixel}; use std::io::Cursor; @@ -56,12 +57,11 @@ fn crop_image(image: Vec) -> DynamicImage { return decoded_image; } - let cropped_image = decoded_image.crop(left, top, right - left + 1, bottom - top + 1); - - return cropped_image; + return decoded_image.crop(left, top, right - left + 1, bottom - top + 1); } -pub async fn start_cropping(image: Vec) -> Vec { +#[frb(sync)] +pub fn process_crop_image(image: Vec) -> Vec { let res = crop_image(image); let mut image_data: Vec = Vec::new(); res.write_to(&mut Cursor::new(&mut image_data), image::ImageFormat::Png) diff --git a/rust/src/api/mod.rs b/rust/src/api/mod.rs index 061f26b9..26d28b46 100644 --- a/rust/src/api/mod.rs +++ b/rust/src/api/mod.rs @@ -2,4 +2,4 @@ // Do not put code in `mod.rs`, but put in e.g. `simple.rs`. // -pub mod imagecrop; +pub mod image; diff --git a/rust/src/frb_generated.io.rs b/rust/src/frb_generated.io.rs index 1cfa2a0e..1784fece 100644 --- a/rust/src/frb_generated.io.rs +++ b/rust/src/frb_generated.io.rs @@ -1,11 +1,11 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // Section: imports use super::*; use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; -use flutter_rust_bridge::for_generated::transform_result_dco; +use flutter_rust_bridge::for_generated::{transform_result_dco, Lockable}; use flutter_rust_bridge::{Handler, IntoIntoDart}; // Section: boilerplate diff --git a/rust/src/frb_generated.rs b/rust/src/frb_generated.rs index 82b78686..f6998522 100644 --- a/rust/src/frb_generated.rs +++ b/rust/src/frb_generated.rs @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. #![allow( non_camel_case_types, @@ -22,7 +22,7 @@ // Section: imports use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; -use flutter_rust_bridge::for_generated::transform_result_dco; +use flutter_rust_bridge::for_generated::{transform_result_dco, Lockable}; use flutter_rust_bridge::{Handler, IntoIntoDart}; // Section: boilerplate @@ -32,8 +32,8 @@ flutter_rust_bridge::frb_generated_boilerplate!( default_rust_opaque = RustOpaqueMoi, default_rust_auto_opaque = RustAutoOpaqueMoi, ); -pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.0.0-dev.37"; -pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -560186126; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.0.0-dev.39"; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -287789500; // Section: executor @@ -41,17 +41,16 @@ flutter_rust_bridge::frb_generated_default_handler!(); // Section: wire_funcs -fn wire__crate__api__imagecrop__start_cropping_impl( - port_: flutter_rust_bridge::for_generated::MessagePort, +fn wire__crate__api__image__process_crop_image_impl( ptr_: flutter_rust_bridge::for_generated::PlatformGeneralizedUint8ListPtr, rust_vec_len_: i32, data_len_: i32, -) { - FLUTTER_RUST_BRIDGE_HANDLER.wrap_async::( +) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { + FLUTTER_RUST_BRIDGE_HANDLER.wrap_sync::( flutter_rust_bridge::for_generated::TaskInfo { - debug_name: "start_cropping", - port: Some(port_), - mode: flutter_rust_bridge::for_generated::FfiCallMode::Normal, + debug_name: "process_crop_image", + port: None, + mode: flutter_rust_bridge::for_generated::FfiCallMode::Sync, }, move || { let message = unsafe { @@ -65,14 +64,9 @@ fn wire__crate__api__imagecrop__start_cropping_impl( flutter_rust_bridge::for_generated::SseDeserializer::new(message); let api_image = >::sse_decode(&mut deserializer); deserializer.end(); - move |context| async move { - transform_result_sse( - (move || async move { - Result::<_, ()>::Ok(crate::api::imagecrop::start_cropping(api_image).await) - })() - .await, - ) - } + transform_result_sse((move || { + Result::<_, ()>::Ok(crate::api::image::process_crop_image(api_image)) + })()) }, ) } @@ -126,7 +120,6 @@ fn pde_ffi_dispatcher_primary_impl( ) { // Codec=Pde (Serialization + dispatch), see doc to use other codecs match func_id { - 1 => wire__crate__api__imagecrop__start_cropping_impl(port, ptr, rust_vec_len, data_len), _ => unreachable!(), } } @@ -139,6 +132,7 @@ fn pde_ffi_dispatcher_sync_impl( ) -> flutter_rust_bridge::for_generated::WireSyncRust2DartSse { // Codec=Pde (Serialization + dispatch), see doc to use other codecs match func_id { + 1 => wire__crate__api__image__process_crop_image_impl(ptr, rust_vec_len, data_len), _ => unreachable!(), } } diff --git a/rust/src/frb_generated.web.rs b/rust/src/frb_generated.web.rs index 2a167704..bc660479 100644 --- a/rust/src/frb_generated.web.rs +++ b/rust/src/frb_generated.web.rs @@ -1,13 +1,13 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.37. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.39. // Section: imports use super::*; use flutter_rust_bridge::for_generated::byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt}; -use flutter_rust_bridge::for_generated::transform_result_dco; use flutter_rust_bridge::for_generated::wasm_bindgen; use flutter_rust_bridge::for_generated::wasm_bindgen::prelude::*; +use flutter_rust_bridge::for_generated::{transform_result_dco, Lockable}; use flutter_rust_bridge::{Handler, IntoIntoDart}; // Section: boilerplate