code: func (c *InternalClient) marshalImportValuePayload(index, field string, shard uint64, vals []pilosa.FieldValue) ([]byte, error) {
  	// Separate row and column IDs to reduce allocations.
  	columnIDs := FieldValues(vals).ColumnIDs()
  	columnKeys := FieldValues(vals).ColumnKeys()
  	values := FieldValues(vals).Values()
  
  	// Marshal data to protobuf.
  	buf, err := c.serializer.Marshal(&pilosa.ImportValueRequest{
  		Index:      index,
  		Field:      field,
  		Shard:      shard,
  		ColumnIDs:  columnIDs,
  		ColumnKeys: columnKeys,
  		Values:     values,
  	})
  	if err != nil {
  		return nil, fmt.Errorf("marshal import request: %s", err)
  	}
  	return buf, nil
  }
docs: // marshalImportValuePayload marshalls the import parameters into a protobuf byte slice.