### Struct

# RB ExtDBKey

#### Description [src]

    struct RBExtDBKey {
      /* No available fields */
    }

An external metadata key consists of one or more required fields (such as the album name for album art lookups), zero or more optional fields (such as the artist name), and zero or more informational fields (such as the musicbrainz album ID).

#### Functions

###### rb_ext_db_key_create_lookup

Creates a new metadata lookup key with a single field. Use `rb_ext_db_key_add_field` to add more.

###### rb_ext_db_key_create_storage

Creates a new metadata storage key with a single field. Use `rb_ext_db_key_add_field` to add more.

#### Instance methods

###### rb_ext_db_key_add_field

Adds a field to the key, or an additional value to an existing field.

###### rb_ext_db_key_add_info

Adds an information field to the key.

###### rb_ext_db_key_copy

Copies a key.

###### rb_ext_db_key_field_matches

Checks whether a specified field in `key` matches a value. This can be used to match keys against other types of data. To match keys against each other, use `rb_ext_db_key_matches`.

###### rb_ext_db_key_free

Frees a key.

###### rb_ext_db_key_get_field

Extracts the value for a single-valued field.

###### rb_ext_db_key_get_field_names

Returns a NULL-terminated array containing the names of the fields present in the key.

###### rb_ext_db_key_get_field_values

Extracts the values for the specified field.

###### rb_ext_db_key_get_info

Extracts the value for the specified info field.

###### rb_ext_db_key_get_info_names

Returns a NULL-terminated array containing the names of the info fields * present in the key.

###### rb_ext_db_key_is_lookup

Returns `TRUE` if the key is a lookup key.

###### rb_ext_db_key_is_null_match

Checks whether `store` has a null value in an optional field of `lookup`, which means it’s not the most specific possible match for a query.

###### rb_ext_db_key_lookups

Generates the set of possible lookup keys for `key` and passes them to `callback` in order. If the callback returns `FALSE`, processing will stop.

###### rb_ext_db_key_matches

Checks whether the fields specified in `a` match `b`. For keys to match, they must have the same set of required fields, and the values for all must match. Optional fields must have the same values if present in both. Informational fields are ignored.

###### rb_ext_db_key_to_store_key

Generates the storage key for `key`. This is the value that should be used to store an item identified by this key in the store. The storage key includes all optional fields, so keys passed to this function should be constructed using only the optional fields that were used to locate the item. The caller must free the data pointer inside `data`.

###### rb_ext_db_key_to_string

Generates a readable string format from the key.