2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * Copyright 2017 Jason King
19 #include <sys/types.h>
20 #include <demangle-sys.h>
21 #include "demangle_int.h"
27 struct sysdem_alloc_s
;
29 typedef struct str_s
{
31 sysdem_ops_t
*str_ops
;
36 typedef struct str_pair_s
{
41 void str_init(str_t
*restrict
, sysdem_ops_t
*);
42 void str_fini(str_t
*);
43 size_t str_length(const str_t
*);
44 boolean_t
str_copy(const str_t
*, str_t
*);
45 void str_set(str_t
*, const char *, size_t);
46 boolean_t
str_append(str_t
*, const char *, size_t);
47 boolean_t
str_append_str(str_t
*, const str_t
*);
48 boolean_t
str_append_c(str_t
*, char);
49 boolean_t
str_insert(str_t
*, size_t, const char *, size_t);
50 boolean_t
str_insert_str(str_t
*, size_t, const str_t
*);
51 boolean_t
str_erase(str_t
*, size_t, size_t);
53 str_pair_t
*str_pair_init(str_pair_t
*, sysdem_ops_t
*);
54 void str_pair_fini(str_pair_t
*);
55 boolean_t
str_pair_merge(str_pair_t
*);
56 boolean_t
str_pair_copy(const str_pair_t
*, str_pair_t
*);
57 size_t str_pair_len(const str_pair_t
*);