From fdc7aa1fb33199a9ee4b1874d8912e05ed65803c Mon Sep 17 00:00:00 2001 From: momoyon Date: Sun, 13 Apr 2025 17:10:47 +0500 Subject: [PATCH] [commonlib.h] sv_get_range() --- commonlib.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/commonlib.h b/commonlib.h index 285ae19..df94650 100644 --- a/commonlib.h +++ b/commonlib.h @@ -73,6 +73,7 @@ #define sv_contains_char c_sv_contains_char #define sv_is_hex_numbers c_sv_is_hex_numbers #define sv_equals c_sv_equals +#define sv_get_part c_sv_get_part #endif // COMMONLIB_REMOVE_PREFIX @@ -294,6 +295,7 @@ float64 c_sv_to_float(c_String_view sv, int *count); bool c_sv_contains_char(c_String_view sv, char ch); bool c_sv_is_hex_numbers(c_String_view sv); bool c_sv_equals(c_String_view sv1, c_String_view sv2); +c_String_view c_sv_get_part(c_String_view sv, int from, int to); #endif /* _COMMONLIB_H_ */ @@ -725,4 +727,15 @@ bool c_sv_equals(c_String_view sv1, c_String_view sv2) { return true; } +c_String_view c_sv_get_part(c_String_view sv, int from, int to) { + from = clampi(from, 0, sv.count); + to = clampi(to, from, sv.count); + + String_view range = { + .data = (char*)(sv.data + from), + .count = (size_t)(to - from), + }; + + return range; +} #endif -- 2.39.5