Skip to content

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

@npc1054657282

Description

@npc1054657282

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);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions