]> git.ipfire.org Git - thirdparty/git.git/blame - reftable/pq.h
Merge branch 'rs/opt-parse-long-fixups'
[thirdparty/git.git] / reftable / pq.h
CommitLineData
3b34f636
HWN
1/*
2Copyright 2020 Google LLC
3
4Use of this source code is governed by a BSD-style
5license that can be found in the LICENSE file or at
6https://developers.google.com/open-source/licenses/bsd
7*/
8
9#ifndef PQ_H
10#define PQ_H
11
12#include "record.h"
13
14struct pq_entry {
5c11529c 15 size_t index;
bb2d6be4 16 struct reftable_record *rec;
3b34f636
HWN
17};
18
19struct merged_iter_pqueue {
20 struct pq_entry *heap;
21 size_t len;
22 size_t cap;
23};
24
3b34f636
HWN
25void merged_iter_pqueue_check(struct merged_iter_pqueue pq);
26struct pq_entry merged_iter_pqueue_remove(struct merged_iter_pqueue *pq);
c18eecbe 27void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, const struct pq_entry *e);
3b34f636
HWN
28void merged_iter_pqueue_release(struct merged_iter_pqueue *pq);
29int pq_less(struct pq_entry *a, struct pq_entry *b);
30
f1bf54ae
PS
31static inline struct pq_entry merged_iter_pqueue_top(struct merged_iter_pqueue pq)
32{
33 return pq.heap[0];
34}
35
36static inline int merged_iter_pqueue_is_empty(struct merged_iter_pqueue pq)
37{
38 return pq.len == 0;
39}
40
3b34f636 41#endif