#ifndef LIGHTNING_PLUGINS_ASKRENE_CHILD_PRIORITYQUEUE_H
#define LIGHTNING_PLUGINS_ASKRENE_CHILD_PRIORITYQUEUE_H
#include "config.h"
#include <ccan/short_types/short_types.h>
#include <ccan/tal/tal.h>
#include <gheap.h>
struct priorityqueue *priorityqueue_new(const tal_t *ctx,
size_t max_num_elements);
void priorityqueue_init(struct priorityqueue *priorityqueue);
void priorityqueue_update(struct priorityqueue *priorityqueue, u32 key,
s64 value);
u32 priorityqueue_top(const struct priorityqueue *priorityqueue);
bool priorityqueue_empty(const struct priorityqueue *priorityqueue);
void priorityqueue_pop(struct priorityqueue *priorityqueue);
const s64 *priorityqueue_value(const struct priorityqueue *priorityqueue);
size_t priorityqueue_size(const struct priorityqueue *priorityqueue);
size_t priorityqueue_maxsize(const struct priorityqueue *priorityqueue);
#endif