code: func MutableForFormat(vc, bpv int, format PackedFormat) Mutable {
  	valueCount := int32(vc)
  	bitsPerValue := uint32(bpv)
  	assert(valueCount >= 0)
  	switch int(format) {
  	case PACKED_SINGLE_BLOCK:
  		return newPacked64SingleBlockBy(valueCount, bitsPerValue)
  	case PACKED:
  		switch bitsPerValue {
  		case 8:
  			return newDirect8(vc)
  		case 16:
  			return newDirect16(vc)
  		case 32:
  			return newDirect32(vc)
  		case 64:
  			return newDirect64(vc)
  		case 24:
  			if valueCount <= PACKED8_THREE_BLOCKS_MAX_SIZE {
  				return newPacked8ThreeBlocks(valueCount)
  			}
  		case 48:
  			if valueCount <= PACKED16_THREE_BLOCKS_MAX_SIZE {
  				return newPacked16ThreeBlocks(valueCount)
  			}
  		}
  		return newPacked64(valueCount, bitsPerValue)
  	}
  	panic(fmt.Sprintf("Invalid format: %v", format))
  }
docs: /* Same as MutableFor() with a pre-computed number of bits per value and format. */