diff options
Diffstat (limited to 'include/serd/string_view.h')
-rw-r--r-- | include/serd/string_view.h | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/include/serd/string_view.h b/include/serd/string_view.h deleted file mode 100644 index 6b8e078c..00000000 --- a/include/serd/string_view.h +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2011-2021 David Robillard <d@drobilla.net> -// SPDX-License-Identifier: ISC - -#ifndef SERD_STRING_VIEW_H -#define SERD_STRING_VIEW_H - -#include "serd/attributes.h" -#include "zix/attributes.h" - -#include <stddef.h> -#include <string.h> - -SERD_BEGIN_DECLS - -/** - @defgroup serd_string_view String View - @ingroup serd_utilities - @{ -*/ - -/** - An immutable slice of a string. - - This type is used for many string parameters, to allow referring to slices - of strings in-place and to avoid redundant string measurement. -*/ -typedef struct { - const char* ZIX_NONNULL data; ///< Start of string - size_t length; ///< Length of string in bytes -} SerdStringView; - -/// Return a view of an empty string -ZIX_ALWAYS_INLINE_FUNC ZIX_CONST_FUNC static inline SerdStringView -serd_empty_string(void) -{ - const SerdStringView view = {"", 0U}; - return view; -} - -/** - Return a view of a substring, or a premeasured string. - - This makes either a view of a slice of a string (which may not be null - terminated), or a view of a string that has already been measured. This is - faster than serd_string() for dynamic strings since it does not call - `strlen`, so should be used when the length of the string is already known. - - @param str Pointer to the start of the substring. - - @param len Length of the substring in bytes, not including the trailing null - terminator if present. -*/ -ZIX_ALWAYS_INLINE_FUNC ZIX_CONST_FUNC static inline SerdStringView -serd_substring(const char* const ZIX_NONNULL str, const size_t len) -{ - const SerdStringView view = {str, len}; - return view; -} - -/** - Return a view of an entire string by measuring it. - - This makes a view of the given string by measuring it with `strlen`. - - @param str Pointer to the start of a null-terminated C string, or null. -*/ -ZIX_ALWAYS_INLINE_FUNC ZIX_PURE_FUNC static inline SerdStringView -// NOLINTNEXTLINE(clang-diagnostic-unused-function) -serd_string(const char* const ZIX_NULLABLE str) -{ - return str ? serd_substring(str, strlen(str)) : serd_empty_string(); -} - -/** - @} -*/ - -SERD_END_DECLS - -#endif // SERD_STRING_VIEW_H |