redict/src/intset.h

36 lines
1.1 KiB
C
Raw Permalink Normal View History

2024-03-21 09:30:47 -04:00
// Copyright (c) 2009-2012, Pieter Noordhuis <pcnoordhuis at gmail dot com>
// Copyright (c) 2009-2012, Salvatore Sanfilippo <antirez at gmail dot com>
// SPDX-FileCopyrightText: 2024 Redict Contributors
// SPDX-FileCopyrightText: 2024 Salvatore Sanfilippo <antirez at gmail dot com>
//
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-License-Identifier: LGPL-3.0-only
2010-06-03 10:06:18 -04:00
#ifndef __INTSET_H
#define __INTSET_H
2010-06-11 13:22:27 -04:00
#include <stdint.h>
2010-06-03 10:06:18 -04:00
typedef struct intset {
uint32_t encoding;
uint32_t length;
int8_t contents[];
} intset;
intset *intsetNew(void);
intset *intsetAdd(intset *is, int64_t value, uint8_t *success);
intset *intsetRemove(intset *is, int64_t value, int *success);
2010-06-03 10:06:18 -04:00
uint8_t intsetFind(intset *is, int64_t value);
int64_t intsetRandom(intset *is);
int64_t intsetMax(intset *is);
int64_t intsetMin(intset *is);
uint8_t intsetGet(intset *is, uint32_t pos, int64_t *value);
uint32_t intsetLen(const intset *is);
2011-02-28 08:48:49 -05:00
size_t intsetBlobLen(intset *is);
int intsetValidateIntegrity(const unsigned char *is, size_t size, int deep);
2010-06-03 10:06:18 -04:00
2024-03-21 11:21:06 -04:00
#ifdef REDICT_TEST
int intsetTest(int argc, char *argv[], int flags);
#endif
2010-06-03 10:06:18 -04:00
#endif // __INTSET_H