test(sv): add remaining tests
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
#ifndef CLIBS_STRING_VIEW_H
|
||||
#define CLIBS_STRING_VIEW_H
|
||||
|
||||
#include <assert.h>
|
||||
#include <malloc.h>
|
||||
#include <printf.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@@ -198,8 +200,9 @@ StringView sv_new_sized(const char *str, size_t len) {
|
||||
StringView sv_new(const char *str) { return sv_new_sized(str, strlen(str)); }
|
||||
|
||||
StringView sv_drop(StringView sv, size_t n) {
|
||||
const char *nd = sv.data + n;
|
||||
return (StringView){
|
||||
.data = sv.data + n,
|
||||
.data = nd < sv.end ? nd : sv.end,
|
||||
.end = sv.end,
|
||||
};
|
||||
}
|
||||
@@ -212,9 +215,10 @@ StringView sv_take(StringView sv, size_t n) {
|
||||
}
|
||||
|
||||
StringView sv_shrink(StringView sv, size_t n) {
|
||||
const char *ne = sv.end - n;
|
||||
return (StringView){
|
||||
.data = sv.data,
|
||||
.end = sv.end - n,
|
||||
.end = ne > sv.data ? ne : sv.data,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -344,6 +348,10 @@ char *sv_concat_with_sep(const StringView *svs, size_t n, StringView sep) {
|
||||
write_head += l;
|
||||
}
|
||||
|
||||
*write_head = '\0';
|
||||
|
||||
assert(write_head - data == len - 1);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user