aboutsummaryrefslogtreecommitdiff
path: root/src/ivec.h
blob: 8526171c94fa0535ac330be345f09ab927afe606 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once

#include <stddef.h>

typedef struct {
  long long *_data;
  size_t _cap;
  size_t len;
} ivec;

void iv_free(ivec *v);
size_t iv_push(ivec *v, long long data);
long long iv_get(ivec *v, size_t idx);
long long iv_rem_shift(ivec *v, size_t idx);
long long iv_rem(ivec *v, size_t idx);
long long iv_has(ivec *v, long long x,
                 int (*comp)(const long long, const long long));
void iv_shrink(ivec *v);