#ifndef PIECE_TABLE_H #define PIECE_TABLE_H #include #include #include "buffer.h" struct piece { char *start; size_t length; struct piece *next; struct piece *prev; }; typedef struct piece piece; typedef struct { fixed_buffer orig; growable_buffer add; piece *sentinel; size_t length; piece *cached; size_t cached_offset; } piece_table; bool init_piece_table(piece_table *pt, char *orig); void free_piece_table(piece_table *pt); void free_piece_list(piece *pt); #endif // PIECE_TABLE_H