## hb-set

hb-set

## Functions

#define | HB_SET_VALUE_INVALID
void | hb_set_add ()
void | hb_set_add_range ()
hb_bool_t | hb_set_allocation_successful ()
void | hb_set_clear ()
hb_set_t * | hb_set_create ()
void | hb_set_del ()
void | hb_set_del_range ()
void | hb_set_destroy ()
hb_set_t * | hb_set_get_empty ()
hb_codepoint_t | hb_set_get_max ()
hb_codepoint_t | hb_set_get_min ()
unsigned int | hb_set_get_population ()
void * | hb_set_get_user_data ()
hb_bool_t | hb_set_has ()
void | hb_set_intersect ()
void | hb_set_invert ()
hb_bool_t | hb_set_is_empty ()
hb_bool_t | hb_set_is_equal ()
hb_bool_t | hb_set_next ()
hb_bool_t | hb_set_next_range ()
hb_set_t * | hb_set_reference ()
void | hb_set_set ()
hb_bool_t | hb_set_set_user_data ()
void | hb_set_subtract ()
void | hb_set_symmetric_difference ()
void | hb_set_union ()

## Types and Values

typedef | hb_set_t

## Object Hierarchy

        GBoxed
        ╰── hb_set_t

## Description

## Functions

### HB_SET_VALUE_INVALID

    #define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1)

### hb_set_add ()

    void
    hb_set_add (hb_set_t *set,
                hb_codepoint_t codepoint);

#### Parameters

set | a set. |

Since 1.0

### hb_set_add_range ()

    void
    hb_set_add_range (hb_set_t *set,
                      hb_codepoint_t first,
                      hb_codepoint_t last);

#### Parameters

set | a set. |

Since 1.0

### hb_set_allocation_successful ()

    hb_bool_t
    hb_set_allocation_successful (const hb_set_t *set);

#### Parameters

set | a set. |

#### Returns

Since 1.0

### hb_set_clear ()

    void
    hb_set_clear (hb_set_t *set);

#### Parameters

set | a set. |

Since 1.0

### hb_set_create ()

    hb_set_t *
    hb_set_create (void);

#### Returns

### hb_set_del ()

    void
    hb_set_del (hb_set_t *set,
                hb_codepoint_t codepoint);

#### Parameters

set | a set. |

Since 1.0

### hb_set_del_range ()

    void
    hb_set_del_range (hb_set_t *set,
                      hb_codepoint_t first,
                      hb_codepoint_t last);

#### Parameters

set | a set. |

Since 1.0

### hb_set_destroy ()

    void
    hb_set_destroy (hb_set_t *set);

#### Parameters

set | a set. |

Since 1.0

### hb_set_get_empty ()

    hb_set_t *
    hb_set_get_empty (void);

#### Returns

.

[transfer full]

Since 1.0

### hb_set_get_max ()

    hb_codepoint_t
    hb_set_get_max (const hb_set_t *set);

Finds the maximum number in the set.

#### Parameters

set | a set. |

#### Returns

minimum of the set, or `HB_SET_VALUE_INVALID` if set is empty.

Since 1.0

### hb_set_get_min ()

    hb_codepoint_t
    hb_set_get_min (const hb_set_t *set);

Finds the minimum number in the set.

#### Parameters

set | a set. |

#### Returns

minimum of the set, or `HB_SET_VALUE_INVALID` if set is empty.

Since 1.0

### hb_set_get_population ()

    unsigned int
    hb_set_get_population (const hb_set_t *set);

Returns the number of numbers in the set.

#### Parameters

set | a set. |

#### Returns

set population.

Since 1.0

### hb_set_get_user_data ()

    void *
    hb_set_get_user_data (hb_set_t *set,
                          hb_user_data_key_t *key);

#### Parameters

set | a set. |

#### Returns

.

[transfer none]

Since 1.0

### hb_set_has ()

    hb_bool_t
    hb_set_has (const hb_set_t *set,
                hb_codepoint_t codepoint);

#### Parameters

set | a set. |

#### Returns

Since 1.0

### hb_set_intersect ()

    void
    hb_set_intersect (hb_set_t *set,
                      const hb_set_t *other);

#### Parameters

set | a set. |

Since 1.0

### hb_set_invert ()

    void
    hb_set_invert (hb_set_t *set);

#### Parameters

set | a set. |

Since 1.0

### hb_set_is_empty ()

    hb_bool_t
    hb_set_is_empty (const hb_set_t *set);

#### Parameters

set | a set. |

#### Returns

Since 1.0

### hb_set_is_equal ()

    hb_bool_t
    hb_set_is_equal (const hb_set_t *set,
                     const hb_set_t *other);

#### Parameters

set | a set. |

#### Returns

Since 1.0

### hb_set_next ()

    hb_bool_t
    hb_set_next (const hb_set_t *set,
                 hb_codepoint_t *codepoint);

#### Parameters

set | a set. |
codepoint | . | [inout]

#### Returns

whether there was a next value.

Since 1.0

### hb_set_next_range ()

    hb_bool_t
    hb_set_next_range (const hb_set_t *set,
                       hb_codepoint_t *first,
                       hb_codepoint_t *last);

Gets the next consecutive range of numbers in `set` that are greater than current value of `last` .

#### Parameters

set | a set. |
first | output first codepoint in the range. | [out]
last | input current last and output last codepoint in the range. | [inout]

#### Returns

whether there was a next range.

Since 1.0

### hb_set_reference ()

    hb_set_t *
    hb_set_reference (hb_set_t *set);

#### Parameters

set | a set. |

#### Returns

.

[transfer full]

Since 1.0

### hb_set_set ()

    void
    hb_set_set (hb_set_t *set,
                const hb_set_t *other);

#### Parameters

set | a set. |

Since 1.0

### hb_set_set_user_data ()

    hb_bool_t
    hb_set_set_user_data (hb_set_t *set,
                          hb_user_data_key_t *key,
                          void *data,
                          hb_destroy_func_t destroy,
                          hb_bool_t replace);

#### Parameters

set | a set. |
data | `destroy` (closure data): |

#### Returns

Since 1.0

### hb_set_subtract ()

    void
    hb_set_subtract (hb_set_t *set,
                     const hb_set_t *other);

#### Parameters

set | a set. |

Since 1.0

### hb_set_symmetric_difference ()

    void
    hb_set_symmetric_difference (hb_set_t *set,
                                 const hb_set_t *other);

#### Parameters

set | a set. |

Since 1.0

### hb_set_union ()

    void
    hb_set_union (hb_set_t *set,
                  const hb_set_t *other);

#### Parameters

set | a set. |

Since 1.0

## Types and Values

### hb_set_t

    typedef struct hb_set_t hb_set_t;