libscratchcpp
A library for C++ based Scratch project players
Loading...
Searching...
No Matches
string_functions.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
3#pragma once
4
5#include "stringptr.h"
6
7namespace libscratchcpp
8{
9
10extern "C"
11{
12 LIBSCRATCHCPP_EXPORT void string_alloc(StringPtr *str, size_t size);
13
14 LIBSCRATCHCPP_EXPORT void string_assign(StringPtr *str, const StringPtr *another);
15 LIBSCRATCHCPP_EXPORT void string_assign_cstring(StringPtr *str, const char *another);
16
17 LIBSCRATCHCPP_EXPORT int string_compare_raw_case_sensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2);
19
20 LIBSCRATCHCPP_EXPORT int string_compare_raw_case_insensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2);
22
23 LIBSCRATCHCPP_EXPORT bool string_contains_raw_case_sensitive(const char16_t *str, const char16_t *substr);
25
26 LIBSCRATCHCPP_EXPORT bool string_contains_raw_case_insensitive(const char16_t *str, const char16_t *substr);
28}
29
30static inline bool raw_strings_equal_case_sensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2)
31{
32 return n1 == n2 && string_compare_raw_case_sensitive(str1, n1, str2, n2) == 0;
33}
34
35static inline bool strings_equal_case_sensitive(const StringPtr *str1, const StringPtr *str2)
36{
37 return raw_strings_equal_case_sensitive(str1->data, str1->size, str2->data, str2->size);
38}
39
40static inline bool raw_strings_equal_case_insensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2)
41{
42 return n1 == n2 && string_compare_raw_case_insensitive(str1, n1, str2, n2) == 0;
43}
44
45static inline bool strings_equal_case_insensitive(const StringPtr *str1, const StringPtr *str2)
46{
47 return raw_strings_equal_case_insensitive(str1->data, str1->size, str2->data, str2->size);
48}
49
50} // namespace libscratchcpp
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10
LIBSCRATCHCPP_EXPORT bool string_contains_case_insensitive(const StringPtr *str, const StringPtr *substr)
Definition string_functions.cpp:179
LIBSCRATCHCPP_EXPORT int string_compare_case_sensitive(const StringPtr *str1, const StringPtr *str2)
Definition string_functions.cpp:79
LIBSCRATCHCPP_EXPORT int string_compare_raw_case_insensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2)
Definition string_functions.cpp:104
LIBSCRATCHCPP_EXPORT int string_compare_raw_case_sensitive(const char16_t *str1, size_t n1, const char16_t *str2, size_t n2)
Definition string_functions.cpp:74
LIBSCRATCHCPP_EXPORT void string_alloc(StringPtr *str, size_t size)
Definition string_functions.cpp:19
LIBSCRATCHCPP_EXPORT bool string_contains_raw_case_sensitive(const char16_t *str, const char16_t *substr)
Definition string_functions.cpp:134
LIBSCRATCHCPP_EXPORT int string_compare_case_insensitive(const StringPtr *str1, const StringPtr *str2)
Definition string_functions.cpp:109
LIBSCRATCHCPP_EXPORT void string_assign_cstring(StringPtr *str, const char *another)
Definition string_functions.cpp:46
LIBSCRATCHCPP_EXPORT void string_assign(StringPtr *str, const StringPtr *another)
Definition string_functions.cpp:38
LIBSCRATCHCPP_EXPORT bool string_contains_raw_case_insensitive(const char16_t *str, const char16_t *substr)
Definition string_functions.cpp:173
LIBSCRATCHCPP_EXPORT bool string_contains_case_sensitive(const StringPtr *str, const StringPtr *substr)
Definition string_functions.cpp:140
The StringPtr struct holds a string data pointer and string size.
Definition stringptr.h:14