index_writer.c (1078B)
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 free(writer); 28 } 29 30 void gemini_indexwriter_begin(GeminiIndexWriter* writer) { 31 assert(writer != NULL); 32 gemini_repoindex_begin(writer->index); 33 } 34 35 void gemini_indexwriter_add_repo(GeminiIndexWriter* writer, 36 const GitRepo* repo) { 37 assert(writer != NULL); 38 assert(repo != NULL); 39 gemini_repoindex_add_repo(writer->index, repo); 40 } 41 42 void gemini_indexwriter_end(GeminiIndexWriter* writer) { 43 assert(writer != NULL); 44 gemini_repoindex_end(writer->index); 45 }