]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reftable/table: add `reftable_table` to the public interface
authorPatrick Steinhardt <ps@pks.im>
Mon, 7 Apr 2025 13:16:25 +0000 (15:16 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Apr 2025 21:53:12 +0000 (14:53 -0700)
The `reftable_table` interface is an internal implementation detail that
callers have no access to. Having direct access to this structure is
important though for a subsequent patch series that will implement
consistency checks for the reftable backend.

Move the structure into "reftable-table.h" so that it part of the public
interface.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
reftable/reftable-table.h
reftable/table.h

index 943790267270d437f1542c05166d7231a227c142..a78db9eea7e51c39149caab078a3949a860f5ac7 100644 (file)
  * reftable_merged_table and struct reftable_stack.
  */
 
+/* Metadata for a block type. */
+struct reftable_table_offsets {
+       int is_present;
+       uint64_t offset;
+       uint64_t index_offset;
+};
+
 /* The table struct is a handle to an open reftable file. */
-struct reftable_table;
+struct reftable_table {
+       /* for convenience, associate a name with the instance. */
+       char *name;
+       struct reftable_block_source source;
+
+       /* Size of the file, excluding the footer. */
+       uint64_t size;
+
+       /* The hash function used for ref records. */
+       enum reftable_hash hash_id;
+
+       uint32_t block_size;
+       uint64_t min_update_index;
+       uint64_t max_update_index;
+       /* Length of the OID keys in the 'o' section */
+       int object_id_len;
+       int version;
+
+       struct reftable_table_offsets ref_offsets;
+       struct reftable_table_offsets obj_offsets;
+       struct reftable_table_offsets log_offsets;
+
+       uint64_t refcount;
+};
 
 /* reftable_table_new opens a reftable for reading. If successful,
  * returns 0 code and sets pp. The name is used for creating a
index e15d58d8e9e9c1b0ec3d7f08997d149c02a8f820..c54703e621061e98a7d10443391c9c4d88691ffe 100644 (file)
 #include "reftable-iterator.h"
 #include "reftable-table.h"
 
-/* metadata for a block type */
-struct reftable_table_offsets {
-       int is_present;
-       uint64_t offset;
-       uint64_t index_offset;
-};
-
-/* The state for reading a reftable file. */
-struct reftable_table {
-       /* for convenience, associate a name with the instance. */
-       char *name;
-       struct reftable_block_source source;
-
-       /* Size of the file, excluding the footer. */
-       uint64_t size;
-
-       /* The hash function used for ref records. */
-       enum reftable_hash hash_id;
-
-       uint32_t block_size;
-       uint64_t min_update_index;
-       uint64_t max_update_index;
-       /* Length of the OID keys in the 'o' section */
-       int object_id_len;
-       int version;
-
-       struct reftable_table_offsets ref_offsets;
-       struct reftable_table_offsets obj_offsets;
-       struct reftable_table_offsets log_offsets;
-
-       uint64_t refcount;
-};
-
 const char *reftable_table_name(struct reftable_table *t);
 
 int table_init_iter(struct reftable_table *t,