/*
Copyright 2020 Google LLC

Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file or at
https://developers.google.com/open-source/licenses/bsd
*/

#ifndef MERGED_H
#define MERGED_H

#include "pq.h"

struct reftable_merged_table {
	struct reftable_table *stack;
	size_t stack_len;
	uint32_t hash_id;

	/* If unset, produce deletions. This is useful for compaction. For the
	 * full stack, deletions should be produced. */
	int suppress_deletions;

	uint64_t min;
	uint64_t max;
};

struct merged_iter {
	struct reftable_iterator *stack;
	uint32_t hash_id;
	size_t stack_len;
	uint8_t typ;
	int suppress_deletions;
	struct merged_iter_pqueue pq;
	struct strbuf key;
	struct strbuf entry_key;
};

void merged_table_release(struct reftable_merged_table *mt);

#endif
