move repository from m6w6 to awesomized
[awesomized/libmemcached] / src / libhashkit / string.h
1 /*
2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020-2021 Michael Wallner https://awesome.co/ |
13 +--------------------------------------------------------------------+
14 */
15
16 #pragma once
17
18 hashkit_string_st *hashkit_string_create(size_t initial_size);
19
20 bool hashkit_string_append_character(hashkit_string_st *string, char character);
21
22 bool hashkit_string_append(hashkit_string_st *string, const char *value, size_t length);
23
24 char *hashkit_string_c_copy(hashkit_string_st *string);
25
26 void hashkit_string_reset(hashkit_string_st *string);
27
28 bool hashkit_string_resize(hashkit_string_st &string, const size_t need);
29
30 size_t hashkit_string_max_size(const hashkit_string_st *self);
31
32 char *hashkit_string_take(hashkit_string_st *self);
33
34 char *hashkit_string_c_str_mutable(hashkit_string_st *self);
35
36 void hashkit_string_set_length(hashkit_string_st *self, size_t length);