in manager.go [161:175]
func (m *Manager) Provider(name string, target any) bool {
if target == nil {
panic("target provider shound not be nil")
}
p, found := m.providers[name]
if !found {
return false
}
val := reflect.ValueOf(target)
if !reflect.TypeOf(p).AssignableTo(val.Elem().Type()) {
return false
}
val.Elem().Set(reflect.ValueOf(p))
return true
}