2025-05-18 00:50:47 +03:00
|
|
|
/// An annotation to assign a name or identifier to a class, method, or other element.
|
|
|
|
|
///
|
|
|
|
|
/// This can be useful for code generation, dependency injection,
|
|
|
|
|
/// or providing metadata within a framework.
|
|
|
|
|
///
|
|
|
|
|
/// Example:
|
|
|
|
|
/// ```dart
|
|
|
|
|
/// @module()
|
|
|
|
|
/// abstract class AppModule extends Module {
|
|
|
|
|
/// @named('dio')
|
|
|
|
|
/// Dio dio() => Dio();
|
|
|
|
|
/// }
|
|
|
|
|
/// ```
|
|
|
|
|
///
|
|
|
|
|
/// Сгенерирует код:
|
|
|
|
|
/// ```dart
|
|
|
|
|
/// final class $AppModule extends AppModule {
|
|
|
|
|
/// @override
|
|
|
|
|
/// void builder(Scope currentScope) {
|
|
|
|
|
/// bind<Dio>().toProvide(() => dio()).withName('dio').singleton();
|
|
|
|
|
/// }
|
|
|
|
|
/// }
|
|
|
|
|
/// ```
|
2025-05-17 14:31:52 +03:00
|
|
|
// ignore: camel_case_types
|
2025-05-18 00:50:47 +03:00
|
|
|
final class named {
|
|
|
|
|
/// The assigned name or identifier.
|
2025-05-17 14:31:52 +03:00
|
|
|
final String value;
|
2025-05-18 00:50:47 +03:00
|
|
|
|
|
|
|
|
/// Creates a [named] annotation with the given [value].
|
2025-05-17 14:31:52 +03:00
|
|
|
const named(this.value);
|
|
|
|
|
}
|