// *mongo.Database
adb = (*AnotherDatabase)(db)
приведение проходит без проблем, но методы db на adb не доступны. В go как-то можно «унаследовать» методы типа в новый тип?
Знаю про alias, но это для wire извращения, его alias не устраивает.
А что ты хочешь получить?
adb.Collection(…) итп. Хочу по сути прокси тип к mongo.Database
нет, тип, обладающий всеми методами первоначального, но с другим именем
а что с wire не так?
wire не может резолвить 2 реализации одного типа, что как бы логично для di
А чем плохо adb := &db ?
в этом случае невозможно (?) привести существующий экземпляр mongo.Database к этому типу
type DB1 sql.DB type DB2 sql.DB func SetupDB1 (...) DB1 {} func SetupDB2(...) DB2 {} func SetupService(db1 DB1, db2 DB2) { }
AntoherDatabase{yourMongoDB}
речь именно о том, что DB2 не имеет методов sql.DB
почему? значит это разные типи и у wire с этим проблем быть не должно
отлично, а вот так работает, спасибо!
https://golang.org/doc/effective_go#embedding почитай https://go101.org/article/type-embedding.html
Обсуждают сегодня