MongoSession.Copy()
и MongoSession.Clone()
должны возвращать значение, которое реализует ISession
. В основном вы создаете тип MongoSession
именно для этого: для реализации ISession
.
mgo.Session
не реализует ваш интерфейс ISession
(например, потому что его метод Session.Clone()
имеет тип возврата *mgo.Session
, а не ISession
). Вам следует создать и вернуть новое значение MongoSession
, в которое можно перенести скопированное или клонированное значение *mgo.Session
.
Как это:
func (s MongoSession) Clone() ISession {
return MongoSession{dbSession: s.dbSession.Clone()}
}
func (s MongoSession) Copy() ISession {
return MongoSession{dbSession: s.dbSession.Copy()}
}