code: func (c *IDCounter) NextID() packet.ID {
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	// ignore zeroes
  	if c.next == 0 {
  		c.next++
  	}
  
  	// cache next id
  	id := c.next
  
  	// increment id
  	c.next++
  
  	return id
  }
docs: // NextID will return the next id.