diff options
author | Johnny Richard <johnny@johnnyrichard.com> | 2022-04-18 00:03:19 +0200 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2022-04-18 00:03:19 +0200 |
commit | 7d5b3c1e9ae35cc2f33c05c1f24f8c9a262eb618 (patch) | |
tree | 7593307bf840f1b26dec8b7571289a69a4cc4960 | |
parent | c6071aae178ff9c44820d533701c09577c8840c5 (diff) |
string_view: Implement string_view_eq function
-rw-r--r-- | string_view.c | 6 | ||||
-rw-r--r-- | string_view.h | 3 | ||||
-rw-r--r-- | test/string_view_test.c | 17 |
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 } |