code: func getFieldInfos(t reflect.Type) ([]fieldInfo, error) {
  	bqFieldsLock.RLock()
  	f := bqFields[t]
  	bqFieldsLock.RUnlock()
  	if f != nil {
  		return f, nil
  	}
  
  	bqFieldsLock.Lock()
  	defer bqFieldsLock.Unlock()
  	return getFieldInfosLocked(t)
  }
docs: // getFieldInfos returns field metadata for a given proto go type.
  // Caches results.