summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Richard <johnny@johnnyrichard.com>2022-04-18 00:03:19 +0200
committerJohnny Richard <johnny@johnnyrichard.com>2022-04-18 00:03:19 +0200
commit7d5b3c1e9ae35cc2f33c05c1f24f8c9a262eb618 (patch)
tree7593307bf840f1b26dec8b7571289a69a4cc4960
parentc6071aae178ff9c44820d533701c09577c8840c5 (diff)
string_view: Implement string_view_eq function
-rw-r--r--string_view.c6
-rw-r--r--string_view.h3
-rw-r--r--test/string_view_test.c17
3 files changed, 25 insertions, 1 deletions
diff --git a/string_view.c b/string_view.c
index d9d6632..d730627 100644
--- a/string_view.c
+++ b/string_view.c
@@ -18,6 +18,7 @@
#include "string_view.h"
#include <assert.h>
+#include <stdbool.h>
#include <string.h>
string_view_t
@@ -37,6 +38,11 @@ string_view_from_cstr(const char *cstr)
return string_view_new(cstr, strlen(cstr));
}
+bool
+string_view_eq(string_view_t a, string_view_t b)
+{
+ return a.size == b.size && memcmp(a.data, b.data, a.size) == 0;
+}
string_view_t
string_view_chop_by_delim(string_view_t *sv, char delim)
diff --git a/string_view.h b/string_view.h
index 2aa4402..2ac6684 100644
--- a/string_view.h
+++ b/string_view.h
@@ -32,12 +32,13 @@ string_view_t string_view_new(const char *cstr, size_t size);
string_view_t string_view_from_cstr(const char *cstr);
+bool string_view_eq(string_view_t a, string_view_t b);
+
string_view_t string_view_chop_by_delim(string_view_t *sv, char delim);
/*
bool string_view_index_of(string_view_t sv, char c, size_t *index);
-bool string_view_eq(string_view_t a, string_view_t b);
bool string_view_eqi(string_view_t a, string_view_t b);
diff --git a/test/string_view_test.c b/test/string_view_test.c
index d4ecf9e..a050239 100644
--- a/test/string_view_test.c
+++ b/test/string_view_test.c
@@ -49,6 +49,22 @@ test_from_cstr(const MunitParameter params[],
}
static MunitResult
+test_eq(const MunitParameter params[],
+ void *user_data_or_fixture)
+{
+ string_view_t a = string_view_from_cstr("hello");
+ string_view_t b = string_view_from_cstr("world");
+
+ assert_false(string_view_eq(a, b));
+
+ b = string_view_from_cstr("hello");
+
+ assert_true(string_view_eq(a, b));
+
+ return MUNIT_OK;
+}
+
+static MunitResult
test_chop_by_delim_when_has_delim(const MunitParameter params[],
void *user_data_or_fixture)
{
@@ -85,6 +101,7 @@ test_chop_by_delim_when_has_no_delim(const MunitParameter params[],
static MunitTest tests[] = {
{ "/test_create_new", test_create_new, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
{ "/test_from_cstr", test_from_cstr, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
+ { "/test_eq", test_eq, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
{ "/test_chop_by_delim_when_has_delim", test_chop_by_delim_when_has_delim, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
{ "/test_chop_by_delim_when_has_no_delim", test_chop_by_delim_when_has_no_delim, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
{ NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }