sds icon indicating copy to clipboard operation
sds copied to clipboard

Improve const-correctness for read-only functions (e.g., sdslen, sdscmp)

Open npc1054657282 opened this issue 7 months ago • 0 comments

Functions that perform read-only operations, like sdscmp, are declared with const sds parameters. Due to typedef char *sds;, const sds resolves to char * const (a constant pointer to mutable data). This signature incorrectly implies that the function might modify the content of the sds strings. More importantly, it makes it impossible to pass a const char * (that is known to be a valid sds string) to these functions without a cast that discards the const qualifier, which fails compilation under -Werror. To significantly improve const-correctness and interoperability with modern C/C++ codebases, I would like to propose introducing a new type for read-only sds strings:

typedef const char * const_sds;

With this new type, the signatures of read-only functions could be updated or overloaded. For example:

int sdscmp(const_sds s1, const_sds s2);
size_t sdslen(const_sds s);

npc1054657282 avatar Jul 02 '25 22:07 npc1054657282