So this is current code that i am trying to modify to DI
var logger service.Logger
if !colorLogsEnabled {
logger = service.NewLogger(os.Stdout, ...)
} else {
logger = service.NewColoredLogger(os.Stdout, ...)
}
The rest of the arguments which are being passed in NewLogger or NewColoredLogger is of type func(*service.Logger)
-----
I tried to change it to this
//main.go
logger := InitializeLogger(os.Stdout, ...)
And then
//wire.go
func InitializeLogger(colorLogsEnabled bool, writer io.Writer, options ...func(*service.Logger)) service.Logger {
if !colorLogsEnabled {
panic(wire.Build(service.New))
} else {
panic(wire.Build(service.NewColorLogger))
}
}
When i did `wire` on command line. it didn't show any errors but it didn't generate any file either.