//go:build wireinject package main import "github.com/google/wire" // InitializeEventBus — попытка собрать граф с циклической зависимостью. // // EventBus → NotificationService → UserService → AuthService → EventBus // // Wire сделает топологическую сортировку, обнаружит цикл и упадёт. // Ленивой инициализации нет — Wire должен знать порядок создания заранее. // А при цикле порядка не существует. // // Запустите: task generate-wire-broken // Результат: "cycle for *EventBus" func InitializeEventBus() (*EventBus, error) { wire.Build( NewEventBus, NewAuthService, NewUserService, NewNotificationService, wire.Bind(new(NotificationSender), new(*NotificationService)), wire.Bind(new(EventPublisher), new(*EventBus)), wire.Bind(new(EventSubscriber), new(*EventBus)), wire.Bind(new(Auth), new(*AuthService)), wire.Bind(new(Users), new(*UserService)), ) return nil, nil }