blob: 7405cb5a15f3a68ad4a8fe26ddbe2feb5a941f0f [file] [log] [blame]
/*
* Copyright (C) 2016 Google Inc.
* Dan Cross <crossd@gmail.com>
* See LICENSE for license details.
*/
#pragma once
/*
* A tracking structure for growing lists of pointers.
*/
struct slice {
void **ptrs;
size_t len;
size_t capacity;
};
void slice_init(struct slice *slice);
void slice_clear(struct slice *slice);
void *slice_get(struct slice *slice, size_t i);
bool slice_put(struct slice *slice, size_t i, void *p);
bool slice_del(struct slice *slice, size_t i);
void slice_append(struct slice *s, void *p);
size_t slice_len(struct slice *slice);
void **slice_finalize(struct slice *slice);
void slice_destroy(struct slice *slice);