## go-string

go-string

## Synopsis

                        GOStringPhonetic;
                        GOString;
    GType               go_string_get_type                  (void);
    GOString *          go_string_new                       (char const *str);
    GOString *          go_string_new_len                   (char const *str,
                                                             guint32 len);
    GOString *          go_string_new_nocopy                (char *str);
    GOString *          go_string_new_nocopy_len            (char *str,
                                                             guint32 len);
    GOString *          go_string_new_rich                  (char const *str,
                                                             int byte_len,
                                                             gboolean copy,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);
    GOString *          go_string_ref                       (GOString *gstr);
    void                go_string_unref                     (GOString *gstr);
    guint32             go_string_get_len                   (GOString const *gstr);
    unsigned int        go_string_get_ref_count             (GOString const *gstr);
    char const	 *       go_string_get_collation             (GOString const *gstr);
    char const	 *       go_string_get_casefold              (GOString const *gstr);
    PangoAttrList *     go_string_get_markup                (GOString const *gstr);
    GOStringPhonetic *  go_string_get_phonetic              (GOString const *gstr);
    guint32             go_string_hash                      (gconstpointer gstr);
    int                 go_string_cmp                       (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    int                 go_string_cmp_ignorecase            (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal                     (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal_ignorecase          (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal_rich                (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    GOString *          go_string_ERROR                     (void);
    void                go_string_foreach_base              (GHFunc callback,
                                                             gpointer data);

## Description

## Details

### GOStringPhonetic

    typedef struct _GOStringPhonetic GOStringPhonetic;

### GOString

    typedef struct {
    	char const *str;	/* utf-8 */
    	/* <private data> */
    } GOString;

### go_string_get_type ()

    GType               go_string_get_type                  (void);

Register GOString as a type for GValue

Returns : | GType

### go_string_new ()

    GOString *          go_string_new                       (char const *str);

GOString duplicates `str` if no string already exists.

`str` : | string (optionally `NULL`)
Returns : | a reference to a GOString containing `str`, or `NULL` if `str` is NULL

### go_string_new_len ()

    GOString *          go_string_new_len                   (char const *str,
                                                             guint32 len);

GOString duplicates `str` if no string already exists.

`str` : | string (optionally `NULL`)
`len` : | guint32
Returns : | a reference to a GOString containing `str`, or `NULL` if `str` is NULL

### go_string_new_nocopy ()

    GOString *          go_string_new_nocopy                (char *str);

GOString takes ownership of `str`

`str` : | string
Returns : | a reference to a GOString containing `str`

### go_string_new_nocopy_len ()

    GOString *          go_string_new_nocopy_len            (char *str,
                                                             guint32 len);

`str` : |
`len` : |
Returns : |

### go_string_new_rich ()

    GOString *          go_string_new_rich                  (char const *str,
                                                             int byte_len,
                                                             gboolean copy,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);

`str` : | string.
`byte_len` : | < 0 will call strlen.
`copy` : | `TRUE` `str` should be copied when adding to the string table.
`markup` : | optionally `NULL` list, GOString steals the ref.
`phonetic` : | optionally `NULL` list of phonetic extensions, GOString steals the ref.
Returns : | a string.

### go_string_ref ()

    GOString *          go_string_ref                       (GOString *gstr);

`gstr` : |
Returns : |

### go_string_unref ()

    void                go_string_unref                     (GOString *gstr);

`gstr` : |

### go_string_get_len ()

    guint32             go_string_get_len                   (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_get_ref_count ()

    unsigned int        go_string_get_ref_count             (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_get_collation ()

    char const	 *       go_string_get_collation             (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_get_casefold ()

    char const	 *       go_string_get_casefold              (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_get_markup ()

    PangoAttrList *     go_string_get_markup                (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_get_phonetic ()

    GOStringPhonetic *  go_string_get_phonetic              (GOString const *gstr);

`gstr` : |
Returns : |

### go_string_hash ()

    guint32             go_string_hash                      (gconstpointer gstr);

`gstr` : |
Returns : |

### go_string_cmp ()

    int                 go_string_cmp                       (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : |
`gstr_b` : |
Returns : |

### go_string_cmp_ignorecase ()

    int                 go_string_cmp_ignorecase            (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : |
`gstr_b` : |
Returns : |

### go_string_equal ()

    gboolean            go_string_equal                     (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : |
`gstr_b` : |
Returns : |

### go_string_equal_ignorecase ()

    gboolean            go_string_equal_ignorecase          (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : |
`gstr_b` : |
Returns : |

### go_string_equal_rich ()

    gboolean            go_string_equal_rich                (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : |
`gstr_b` : |
Returns : |

### go_string_ERROR ()

    GOString *          go_string_ERROR                     (void);

A convenience for g_return_val to share one error string without adding a reference to functions that do not add references to the result

Returns : | A string saying 'ERROR' but does not add a ref to it.

### go_string_foreach_base ()

    void                go_string_foreach_base              (GHFunc callback,
                                                             gpointer data);

`callback` : |
`data` : |