object: string: add front, back, and pop_back functions
This commit is contained in:
@@ -324,6 +324,38 @@ size_t b_string_get_capacity(const struct b_string *str)
|
||||
return str->s_max;
|
||||
}
|
||||
|
||||
char b_string_front(const struct b_string *str)
|
||||
{
|
||||
if (str->s_len == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *s = b_string_ptr(str);
|
||||
return s[0];
|
||||
}
|
||||
|
||||
char b_string_back(const struct b_string *str)
|
||||
{
|
||||
if (str->s_len == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *s = b_string_ptr(str);
|
||||
return s[str->s_len - 1];
|
||||
}
|
||||
|
||||
void b_string_pop_back(struct b_string *str)
|
||||
{
|
||||
if (str->s_len == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
char *s = string_ptr(str);
|
||||
|
||||
s[str->s_len - 1] = '\0';
|
||||
str->s_len--;
|
||||
}
|
||||
|
||||
const char *b_string_ptr(const struct b_string *str)
|
||||
{
|
||||
if (string_is_inline(str)) {
|
||||
|
||||
Reference in New Issue
Block a user