code: func (a *IPRangeAllocator) Reserve(ip net.IP) {
  	a.mutex.Lock()
  	defer a.mutex.Unlock()
  
  	// ensure the specified IP is within the range
  	if !a.ipRange.Contains(ip) {
  		return
  	}
  
  	// calculate the idx from the start
  	ipBig := big.NewInt(0)
  	ipBig.SetBytes(ip)
  	idx := ipBig.Sub(ipBig, a.startBig).Int64()
  
  	// if it isn't already reserved, then mark it reserved and decrement the
  	// remaining count
  	if !a.reserved[idx] {
  		a.reserved[idx] = true
  		a.remaining--
  	}
  }
docs: // Reserve allows reserving a specific IP address within the specified range to
  // ensure it is not allocated.