mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-23 21:13:35 +00:00
Applied consistent code formatting across all packages using \$ melos format
└> dart format .
└> RUNNING (in 8 packages)
--------------------------------------------------------------------------------
benchmark_di:
Formatted 18 files (0 changed) in 0.30 seconds.
benchmark_di: SUCCESS
--------------------------------------------------------------------------------
cherrypick:
Formatted 24 files (0 changed) in 0.34 seconds.
cherrypick: SUCCESS
--------------------------------------------------------------------------------
cherrypick_annotations:
Formatted 11 files (0 changed) in 0.14 seconds.
cherrypick_annotations: SUCCESS
--------------------------------------------------------------------------------
cherrypick_flutter:
Formatted 3 files (0 changed) in 0.15 seconds.
cherrypick_flutter: SUCCESS
--------------------------------------------------------------------------------
cherrypick_generator:
Formatted 17 files (0 changed) in 0.27 seconds.
cherrypick_generator: SUCCESS
--------------------------------------------------------------------------------
client_app:
Formatted 4 files (0 changed) in 0.14 seconds.
client_app: SUCCESS
--------------------------------------------------------------------------------
postly:
Formatted lib/router/app_router.gr.dart
Formatted 23 files (1 changed) in 0.33 seconds.
postly: SUCCESS
--------------------------------------------------------------------------------
talker_cherrypick_logger:
Formatted 4 files (0 changed) in 0.18 seconds.
talker_cherrypick_logger: SUCCESS
--------------------------------------------------------------------------------
$ melos format
└> dart format .
└> SUCCESS. No functional or logic changes included.
34 lines
1.8 KiB
Dart
34 lines
1.8 KiB
Dart
import 'package:benchmark_di/scenarios/universal_binding_mode.dart';
|
||
|
||
/// Универсальная абстракция для DI-адаптера с унифицированной функцией регистрации.
|
||
/// Теперь для каждого адаптера задаём строгий generic тип контейнера.
|
||
typedef Registration<TContainer> = void Function(TContainer);
|
||
|
||
abstract class DIAdapter<TContainer> {
|
||
/// Устанавливает зависимости с помощью строго типизированного контейнера.
|
||
void setupDependencies(void Function(TContainer container) registration);
|
||
|
||
/// Возвращает типобезопасную функцию регистрации зависимостей под конкретный сценарий.
|
||
Registration<TContainer> universalRegistration<S extends Enum>({
|
||
required S scenario,
|
||
required int chainCount,
|
||
required int nestingDepth,
|
||
required UniversalBindingMode bindingMode,
|
||
});
|
||
|
||
/// Резолвит (возвращает) экземпляр типа [T] (по имени, если требуется).
|
||
T resolve<T extends Object>({String? named});
|
||
|
||
/// Асинхронно резолвит экземпляр типа [T] (если нужно).
|
||
Future<T> resolveAsync<T extends Object>({String? named});
|
||
|
||
/// Уничтожает/отчищает DI-контейнер.
|
||
void teardown();
|
||
|
||
/// Открывает дочерний scope и возвращает новый адаптер (если поддерживается).
|
||
DIAdapter<TContainer> openSubScope(String name);
|
||
|
||
/// Ожидание готовности DI контейнера (если нужно для async DI).
|
||
Future<void> waitForAsyncReady() async {}
|
||
}
|