CLibs
Loading...
Searching...
No Matches
dynstring.h
Go to the documentation of this file.
1//
2// Created by MacBook on 18.10.2024.
3//
4
5#ifndef CLIBS_DYNSTRING_H
6#define CLIBS_DYNSTRING_H
7
8#include "../headers/attributes.h" /* Constructor */
9
10#include <stdarg.h>
11#include <stddef.h>
12#include <sys/types.h>
13
14
15typedef struct dynamic_string DynString;
16
17
18/* ==== Constructors/Destructors ==== */
36
39
40
41/* ==== Modifiers ==== */
49ssize_t dynstr_append( DynString *, const char *app );
59ssize_t dynstr_appendn( DynString *, const char *app, size_t len );
65PrintfLike( 2, 3 ) ssize_t dynstr_appendf( DynString *, const char *fmt, ... );
71ssize_t dynstr_vappendf( DynString *, const char *fmt, va_list vargs );
72
77ssize_t dynstr_prepend( DynString *, const char * );
87ssize_t dynstr_prependn( DynString *, const char *s, size_t len );
93PrintfLike( 2, 3 ) ssize_t dynstr_prependf( DynString *, const char *fmt, ... );
99ssize_t dynstr_vprependf( DynString *, const char *fmt, va_list vargs );
100
138int dynstr_slice( DynString *, size_t start_idx, ssize_t end_idx );
140int dynstr_slice_e( DynString *, ssize_t end_idx );
142int dynstr_slice_s( DynString *, size_t start_idx );
143
149
156int dynstr_set( DynString *, const char *string );
157
168int dynstr_set_at( DynString *dynstr, size_t idx, char c );
169
170
171/* ==== Getters ==== */
182const char *dynstr_data( const DynString * );
188size_t dynstr_len( const DynString * );
189
190#endif //CLIBS_DYNSTRING_H
Function and variable attributes.
#define UseResult
Function's return value must be used.
Definition attributes.h:52
#define Constructor
Definition attributes.h:101
#define PrintfLike(FORMAT_STRING, FIRST_VAR_ARG)
Tells the compiler which varargs correspond to a format string.
Definition attributes.h:39
int dynstr_slice(DynString *, size_t start_idx, ssize_t end_idx)
size_t dynstr_len(const DynString *)
int dynstr_reset(DynString *)
int dynstr_set(DynString *, const char *string)
ssize_t dynstr_prependn(DynString *, const char *s, size_t len)
int dynstr_slice_e(DynString *, ssize_t end_idx)
PrintfLike ssize_t dynstr_appendf(DynString *, const char *fmt,...)
void dynstr_destroy(DynString *)
ssize_t dynstr_vappendf(DynString *, const char *fmt, va_list vargs)
ssize_t dynstr_append(DynString *, const char *app)
const char * dynstr_data(const DynString *)
Constructor DynString * dynstr_init_cap(size_t cap)
int dynstr_set_at(DynString *dynstr, size_t idx, char c)
Constructor DynString * dynstr_init_as(const char *)
Constructor DynString * dynstr_init(void)
ssize_t dynstr_prepend(DynString *, const char *)
ssize_t dynstr_vprependf(DynString *, const char *fmt, va_list vargs)
PrintfLike ssize_t dynstr_prependf(DynString *, const char *fmt,...)
struct dynamic_string DynString
Definition dynstring.h:15
int dynstr_slice_s(DynString *, size_t start_idx)
ssize_t dynstr_appendn(DynString *, const char *app, size_t len)
UseResult char * dynstr_data_copy(const DynString *)