code: func (r *DrvRegistry) WalkIPAMs(ifn IPAMWalkFunc) {
  	type ipamVal struct {
  		name string
  		data *ipamData
  	}
  
  	r.Lock()
  	ivl := make([]ipamVal, 0, len(r.ipamDrivers))
  	for k, v := range r.ipamDrivers {
  		ivl = append(ivl, ipamVal{name: k, data: v})
  	}
  	r.Unlock()
  
  	for _, iv := range ivl {
  		if ifn(iv.name, iv.data.driver, iv.data.capability) {
  			break
  		}
  	}
  }
docs: // WalkIPAMs walks the IPAM drivers registered in the registry and invokes the passed walk function and each one of them.