1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-12-21 03:10:06 +01:00
Files
app/packages/container-macro/Sources/ContainerMacro/Macros.swift
2025-10-16 18:58:10 +02:00

25 lines
663 B
Swift

/// Automatically adds container dependency injection to a class.
///
/// This macro generates:
/// - A public `container` property
/// - An `init(_ container:)` initializer
/// - Computed properties for all Container services
///
/// Usage:
/// ```swift
/// import ContainerMacro
///
/// @ContainerAccess
/// class MyClass {
/// func doSomething() {
/// container.shell.run("command")
/// container.favorites.add(site)
/// }
/// }
/// ```
@attached(member, names: named(container), named(init(container:)), arbitrary)
public macro ContainerAccess() = #externalMacro(
module: "ContainerMacroPlugin",
type: "ContainerAccessMacro"
)