MCPcopy Create free account
hub / github.com/ashvardanian/StringZilla / sz_string_range

Function sz_string_range

include/stringzilla/small_string.h:244–250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

242}
243
244SZ_PUBLIC void sz_string_range(sz_string_t const *string, sz_ptr_t *start, sz_size_t *length) {
245 sz_size_t is_small = (sz_cptr_t)string->internal.start == (sz_cptr_t)&string->internal.chars[0];
246 sz_size_t is_big_mask = is_small - (sz_size_t)1;
247 *start = string->external.start; // It doesn't matter if it's on stack or heap, the pointer location is the same.
248 // If the string is small, use branch-less approach to mask-out the top bytes of the length.
249 *length = string->external.length & ((sz_size_t)0xFF | is_big_mask);
250}
251
252SZ_PUBLIC sz_size_t sz_string_length(sz_string_t const *string) {
253 sz_size_t is_small = (sz_cptr_t)string->internal.start == (sz_cptr_t)&string->internal.chars[0];

Callers 8

viewMethod · 0.85
basic_stringClass · 0.85
lookupMethod · 0.85
utf8_countMethod · 0.85
utf8_find_nthMethod · 0.85
try_assignMethod · 0.85
sz_string_equalFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…