# CassCollection

### struct CassCollection

A collection of values. 

### Public Types

### enum CassCollectionType

*Values:*

### Public Functions

### [CassCollection](#_CPPv414CassCollection) \*cass_collection_new([CassCollectionType](#_CPPv4N14CassCollection18CassCollectionTypeE) type, size_t item_count)

Creates a new collection.

#### SEE ALSO
[cass_collection_free()](#struct_cass_collection_1a58827b1b3b1865c2e0981cfdef38b47a)

* **Parameters:**
  * **type** – **[in]** 
  * **item_count** – **[in]** The approximate number of items in the collection. 
* **Returns:**
  Returns a collection that must be freed.

### [CassCollection](#_CPPv414CassCollection) \*cass_collection_new_from_data_type(const [CassDataType](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassDataType.md#_CPPv412CassDataType) \*data_type, size_t item_count)

Creates a new collection from an existing data type.

#### SEE ALSO
[cass_collection_free()](#struct_cass_collection_1a58827b1b3b1865c2e0981cfdef38b47a); 

* **Parameters:**
  * **data_type** – **[in]** 
  * **item_count** – **[in]** The approximate number of items in the collection. 
* **Returns:**
  Returns a collection that must be freed.

### void cass_collection_free([CassCollection](#_CPPv414CassCollection) \*collection)

Frees a collection instance.

* **Parameters:**
  **collection** – **[in]** 

### const [CassDataType](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassDataType.md#_CPPv412CassDataType) \*cass_collection_data_type(const [CassCollection](#_CPPv414CassCollection) \*collection)

Gets the data type of a collection.

* **Parameters:**
  **collection** – **[in]** 
* **Returns:**
  Returns a reference to the data type of the collection. Do not free this reference as it is bound to the lifetime of the collection. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_int8([CassCollection](#_CPPv414CassCollection) \*collection, [cass_int8_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_int8_t) value)

Appends a “tinyint” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_int16([CassCollection](#_CPPv414CassCollection) \*collection, [cass_int16_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int16_t) value)

Appends an “smallint” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_int32([CassCollection](#_CPPv414CassCollection) \*collection, [cass_int32_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int32_t) value)

Appends an “int” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_uint32([CassCollection](#_CPPv414CassCollection) \*collection, [cass_uint32_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv413cass_uint32_t) value)

Appends a “date” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_int64([CassCollection](#_CPPv414CassCollection) \*collection, [cass_int64_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int64_t) value)

Appends a “bigint”, “counter”, “timestamp” or “time” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_float([CassCollection](#_CPPv414CassCollection) \*collection, [cass_float_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_float_t) value)

Appends a “float” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_double([CassCollection](#_CPPv414CassCollection) \*collection, [cass_double_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv413cass_double_t) value)

Appends a “double” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_bool([CassCollection](#_CPPv414CassCollection) \*collection, [cass_bool_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_bool_t) value)

Appends a “boolean” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_string([CassCollection](#_CPPv414CassCollection) \*collection, const char \*value)

Appends an “ascii”, “text” or “varchar” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** The value is copied into the collection object; the memory pointed to by this parameter can be freed after this call. 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_string_n([CassCollection](#_CPPv414CassCollection) \*collection, const char \*value, size_t value_length)

Same as [cass_collection_append_string()](#struct_cass_collection_1a2919edd2d95b0aa9d92060ab62cd7ff3), but with lengths for string parameters.

#### SEE ALSO
[cass_collection_append_string()](#struct_cass_collection_1a2919edd2d95b0aa9d92060ab62cd7ff3); 

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
  * **value_length** – **[in]** 
* **Returns:**
  same as [cass_collection_append_string()](#struct_cass_collection_1a2919edd2d95b0aa9d92060ab62cd7ff3)

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_bytes([CassCollection](#_CPPv414CassCollection) \*collection, const [cass_byte_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_byte_t) \*value, size_t value_size)

Appends a “blob”, “varint” or “custom” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** The value is copied into the collection object; the memory pointed to by this parameter can be freed after this call. 
  * **value_size** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_uuid([CassCollection](#_CPPv414CassCollection) \*collection, [CassUuid](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassUuid.md#_CPPv48CassUuid) value)

Appends a “uuid” or “timeuuid” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_inet([CassCollection](#_CPPv414CassCollection) \*collection, [CassInet](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassInet.md#_CPPv48CassInet) value)

Appends an “inet” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_decimal([CassCollection](#_CPPv414CassCollection) \*collection, const [cass_byte_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_byte_t) \*varint, size_t varint_size, [cass_int32_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int32_t) scale)

Appends a “decimal” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **varint** – **[in]** The value is copied into the collection object; the memory pointed to by this parameter can be freed after this call. 
  * **varint_size** – **[in]** 
  * **scale** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_duration([CassCollection](#_CPPv414CassCollection) \*collection, [cass_int32_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int32_t) months, [cass_int32_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int32_t) days, [cass_int64_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv412cass_int64_t) nanos)

Appends a “duration” to the collection.

**Requires Apache Cassandra:** 3.10+

* **Parameters:**
  * **collection** – **[in]** 
  * **months** – **[in]** 
  * **days** – **[in]** 
  * **nanos** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_collection([CassCollection](#_CPPv414CassCollection) \*collection, const [CassCollection](#_CPPv414CassCollection) \*value)

Appends a “list”, “map” or “set” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_tuple([CassCollection](#_CPPv414CassCollection) \*collection, const [CassTuple](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassTuple.md#_CPPv49CassTuple) \*value)

Appends a “tuple” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_user_type([CassCollection](#_CPPv414CassCollection) \*collection, const [CassUserType](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/struct.CassUserType.md#_CPPv412CassUserType) \*value)

Appends a “udt” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **value** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_custom([CassCollection](#_CPPv414CassCollection) \*collection, const char \*class_name, const [cass_byte_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_byte_t) \*value, size_t value_size)

Appends a “custom” to the collection.

* **Parameters:**
  * **collection** – **[in]** 
  * **class_name** – **[in]** 
  * **value** – **[in]** The value is copied into the collection object; the memory pointed to by this parameter can be freed after this call. 
  * **value_size** – **[in]** 
* **Returns:**
  CASS_OK if successful, otherwise an error occurred. 

### [CassError](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.CassError.md#_CPPv49CassError) cass_collection_append_custom_n([CassCollection](#_CPPv414CassCollection) \*collection, const char \*class_name, size_t class_name_length, const [cass_byte_t](https://cpp-rs-driver.docs.scylladb.com/v1.0.1/api/group.BasicTypes.md#_CPPv411cass_byte_t) \*value, size_t value_size)

Same as [cass_collection_append_custom()](#struct_cass_collection_1a7619b3949252ec2d7553b2f25553c38a), but with lengths for string parameters.

#### SEE ALSO
[cass_collection_append_custom()](#struct_cass_collection_1a7619b3949252ec2d7553b2f25553c38a)

* **Parameters:**
  * **collection** – **[in]** 
  * **class_name** – **[in]** 
  * **class_name_length** – **[in]** 
  * **value** – **[in]** 
  * **value_size** – **[in]** 
* **Returns:**
  same as [cass_collection_append_custom()](#struct_cass_collection_1a7619b3949252ec2d7553b2f25553c38a)
