registerConstructor<T extends Object> method
Resolvable<Lazy<T> >
registerConstructor<T extends Object>(
- @sendable FutureOr<
T> constructor(), { - Option<
TOnRegisterCallback< onRegister = const None(),Lazy< >T> > - Option<
TOnUnregisterCallback< onUnregister = const None(),Lazy< >T> > - Entity groupEntity = const DefaultEntity(),
inherited
Registers a lazy dependency.
Implementation
@pragma('vm:prefer-inline')
Resolvable<Lazy<T>> registerConstructor<T extends Object>(
@sendable FutureOr<T> Function() constructor, {
Option<TOnRegisterCallback<Lazy<T>>> onRegister = const None(),
Option<TOnUnregisterCallback<Lazy<T>>> onUnregister = const None(),
Entity groupEntity = const DefaultEntity(),
}) {
// One-line adapter closure that only captures `constructor` (itself
// `@sendable`). The analyzer cannot verify transitive sendability of
// arbitrary closures, but the capture set here is provably sendable
// when callers respect the `@sendable` requirement on `constructor`.
return registerLazy<T>(
// ignore: sendable
() => Resolvable<T>(() => constructor()),
onRegister: onRegister,
onUnregister: onUnregister,
groupEntity: groupEntity,
);
}