diff --git a/list.c b/list.c index 1f92ba1..6c2bf04 100644 --- a/list.c +++ b/list.c @@ -64,6 +64,11 @@ void list_reserve(List* self, size_t at_least) { self->cap = new_cap; } +void list_set_len(List* self, size_t len) { + list_reserve(self, len); + self->len = len; +} + void* list_at_unchecked(List* self, size_t at) { union { uint8_t* as_byte; diff --git a/list.h b/list.h index 0d34494..91fecbd 100644 --- a/list.h +++ b/list.h @@ -17,6 +17,7 @@ extern List list_copy(const List* source); extern void list_empty(List* list); extern void list_reserve(List* self, size_t at_least); +extern void list_set_len(List* self, size_t len); extern void* list_at(List* list, size_t at); extern void* list_at_unchecked(List* self, size_t at);