2025-08-02 11:10:22 +03:30
|
|
|
import 'package:flutter/foundation.dart';
|
|
|
|
|
|
2025-11-22 14:12:21 +03:30
|
|
|
/// Parse a list in isolate.
|
|
|
|
|
/// Example:
|
|
|
|
|
/// ```dart
|
|
|
|
|
/// await parseListInIsolate<T>(list, fromJson);
|
|
|
|
|
/// ```
|
2025-08-02 11:10:22 +03:30
|
|
|
List<T> _parserList<T>(Map<String, dynamic> args) {
|
|
|
|
|
final list = args['list'] as List<dynamic>;
|
|
|
|
|
final T Function(Map<String, dynamic>) fromJson =
|
|
|
|
|
args['fromJson'] as T Function(Map<String, dynamic>);
|
|
|
|
|
|
|
|
|
|
return list.map<T>((e) => fromJson(e as Map<String, dynamic>)).toList();
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-22 14:12:21 +03:30
|
|
|
/// Parse a list in isolate.
|
|
|
|
|
/// Example:
|
|
|
|
|
/// ```dart
|
|
|
|
|
/// await parseListInIsolate<T>(list, fromJson);
|
|
|
|
|
/// ```
|
2025-08-02 11:10:22 +03:30
|
|
|
Future<List<T>> parseListInIsolate<T>(
|
|
|
|
|
List<dynamic> list,
|
|
|
|
|
T Function(Map<String, dynamic>) fromJson,
|
|
|
|
|
) async {
|
|
|
|
|
return compute(_parserList<T>, {'list': list, 'fromJson': fromJson});
|
|
|
|
|
}
|