litespeed-quic/src/liblsquic/lsquic_str.h

64 lines
1.5 KiB
C

/* Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE. */
/*
* lsquic_str.h -- Some string routines.
*/
#ifndef LSQUIC_STR_H
#define LSQUIC_STR_H 1
struct lsquic_str
{
char *str;
size_t len;
};
typedef struct lsquic_str lsquic_str_t;
lsquic_str_t *
lsquic_str_new (const char *, size_t);
#define lsquic_str_len(lstr) (+(lstr)->len)
#define lsquic_str_setlen(lstr, len_) do { \
(lstr)->len = len_; \
} while (0)
void
lsquic_str_setto (lsquic_str_t *, const void *, size_t);
int
lsquic_str_append (lsquic_str_t *, const char *, size_t);
void
lsquic_str_d (lsquic_str_t *);
void
lsquic_str_delete (lsquic_str_t *);
char *
lsquic_str_prealloc (lsquic_str_t *, size_t);
#define lsquic_str_buf(lstr) ((char *) (lstr)->str)
#define lsquic_str_cstr(lstr) ((const char *) (lstr)->str)
#define lsquic_str_blank(lstr) do { \
(lstr)->str = NULL; \
(lstr)->len = 0; \
} while (0)
int
lsquic_str_bcmp (const void *, const void *);
lsquic_str_t *
lsquic_str_copy (lsquic_str_t *, const lsquic_str_t *);
#define lsquic_str_set(lstr, src, len_) do { \
(lstr)->str = src; \
(lstr)->len = len_; \
} while (0)
#endif