%{#
#include "contrib/glib/CATS/glib/gstring.cats"
%}
absviewtype GString_ptr (l:addr) viewtypedef GString_ptr0 = [l:agez] GString_ptr (l)
viewtypedef GString_ptr1 = [l:addr | l > null] GString_ptr (l)
fun g_string_get_str
{l:agz} (string: !GString_ptr l): ptr = "atsctrb_g_string_get_str"
fun g_string_get_len
{l:agz} (string: !GString_ptr l): gsize = "atsctrb_g_string_get_len"
fun g_string_get_allocated_len
{l:agz} (string: !GString_ptr l): gsize = "atsctrb_g_string_get_allocated_len"
symintr g_string_new
fun g_string_new_null
(): GString_ptr1 = "#atsctrb_g_string_new_null"
overload g_string_new with g_string_new_null
fun g_string_new_init
{l:addr} (init: !gstring l): GString_ptr1 = "#atsctrb_g_string_new_init"
overload g_string_new with g_string_new_init
absviewtype
gchararrptr (l:addr, n:int)
fun g_string_new_len {l:addr} {n,n1:nat | n1 <= n}
(init: !gchararrptr (l, n), n1: gsize n1): GString_ptr1 = "#g_string_new_len"
fun g_string_sized_new
{n:nat} (n: gsize n): GString_ptr1 = "#g_string_sized_new"
fun g_string_assign {l,l1:addr | l > null}
(string: !GString_ptr l, _val: !gstring l1): ptr l = "#atsctrb_g_string_assign"
fun g_string_append {l,l1:addr | l > null}
(string: !GString_ptr l, _val: !gstring l1): ptr l = "#atsctrb_g_string_append"
fun g_string_append_c {l:agz}
(string: !GString_ptr l, c: gchar): ptr l = "#atsctrb_g_string_append_c"
fun g_string_append_len
{l,l1:addr | l > null} {n1,n2:nat | n2 <= n1}
(string: !GString_ptr l, _val: !gchararrptr (l1, n1), n2: gsize n2): ptr l
= "#atsctrb_g_string_append_len"
fun g_string_printf {l:agz} {ts:types}
(string: !GString_ptr l, fmt: printf_c ts, arg: ts): void
= "#atsctrb_g_string_printf"
fun g_string_append_printf {l:agz} {ts:types}
(string: !GString_ptr l, fmt: printf_c ts, arg: ts): void
= "#atsctrb_g_string_append_printf"
fun g_string_prepend {l:agz}
(string: !GString_ptr l, _val: string): ptr l
= "#atsctrb_g_string_prepend"
fun g_string_prepend_c {l:agz}
(string: !GString_ptr l, c: gchar): ptr l
= "#atsctrb_g_string_prepend_c"
fun g_string_prepend_len
{l,l1:addr | l > null} {n1,n2:nat}
(string: !GString_ptr l, _val: !gchararrptr (l1, n1), n2: gsize n2): ptr l
= "#atsctrb_g_string_prepend_len"
fun g_string_insert {l:agz}
(string: !GString_ptr l, pos: gssize, _val: string): ptr l
= "#atsctrb_g_string_insert"
fun g_string_insert_c {l:agz}
(string: !GString_ptr l, pos: gssize, c: gchar): ptr l
= "#atsctrb_g_string_insert_c"
fun g_string_insert_len
{l,l1:addr | l > null} {n1,n2:nat} (
string: !GString_ptr l, pos: gssize, _val: !gchararrptr (l1, n1), n2: gsize n2
) : ptr l = "#atsctrb_g_string_insert_len"
fun g_string_overwrite {l:agz}
(string: !GString_ptr l, pos: gssize, _val: string): ptr l
= "#atsctrb_g_string_overwrite"
fun g_string_overwrite_len
{l,l1:addr | l > null} {n1,n2:nat} (
string: !GString_ptr l, pos: gssize, _val: !gchararrptr (l1, n1), n2: gsize n2
) : ptr l = "#atsctrb_g_string_overwrite_len"
fun g_string_erase {l:agz}
(string: !GString_ptr l, pos: gssize, n: gssize): ptr l
= "#atsctrb_g_string_erase"
fun g_string_truncate {l:agz}
(string: !GString_ptr l, n: gsize): ptr l = "#atsctrb_g_string_truncate"
fun g_string_set_size {l:agz}
(string: !GString_ptr l, n: gsize): ptr l = "#atsctrb_g_string_set_size"
fun g_string_free_true
(string: GString_ptr1): void = "#atsctrb_g_string_free_true"
fun g_string_hash {l:agz}
(string1: !GString_ptr l): guint = "#atsctrb_g_string_hash"
fun g_string_equal {l1,l2:agz}
(string1: !GString_ptr l1, string2: !GString_ptr l2): gboolean
= "#atsctrb_g_string_equal"