summaryrefslogtreecommitdiff
path: root/array.h
blob: ded32167349e7cfe21e314f12d14d572c5760336 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef __SAFEC_ARRAY_H
#define __SAFEC_ARRAY_H
#include "types.h"

typedef struct {
    size_t length;
    size_t elemsz;
    void* __data;
} array_t;

void* array_at(const array_t array, size_t idx);
array_t array_slice(const array_t array, size_t start, size_t length);

array_t array_init(void* data, size_t length, size_t elemsz);

array_t array_heap_alloc(size_t length, size_t elemsz);
void array_heap_destroy(array_t array);

#endif