index_writer.c (1102B)
1 #include "writer/gemini/index_writer.h" 2 3 #include <assert.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 #include "git/repo.h" 8 #include "utils.h" 9 #include "writer/gemini/repo_index.h" 10 11 struct GeminiIndexWriter { 12 GeminiRepoIndex* index; 13 }; 14 15 GeminiIndexWriter* gemini_indexwriter_create(FILE* out) { 16 assert(out != NULL); 17 GeminiIndexWriter* writer = ecalloc(1, sizeof(GeminiIndexWriter)); 18 writer->index = gemini_repoindex_create(out); 19 return writer; 20 } 21 22 void gemini_indexwriter_free(GeminiIndexWriter* writer) { 23 if (!writer) { 24 return; 25 } 26 gemini_repoindex_free(writer->index); 27 writer->index = NULL; 28 free(writer); 29 } 30 31 void gemini_indexwriter_begin(GeminiIndexWriter* writer) { 32 assert(writer != NULL); 33 gemini_repoindex_begin(writer->index); 34 } 35 36 void gemini_indexwriter_add_repo(GeminiIndexWriter* writer, 37 const GitRepo* repo) { 38 assert(writer != NULL); 39 assert(repo != NULL); 40 gemini_repoindex_add_repo(writer->index, repo); 41 } 42 43 void gemini_indexwriter_end(GeminiIndexWriter* writer) { 44 assert(writer != NULL); 45 gemini_repoindex_end(writer->index); 46 }