static bool address_expansion_write(address_expansion_t expansion, FILE *f) { if (f == NULL) return false; uint32_t language_len = (uint32_t)strlen(expansion.language) + 1; if (!file_write_uint32(f, (uint32_t)expansion.canonical_index) || !file_write_uint32(f, language_len) || !file_write_chars(f, expansion.language, language_len) || !file_write_uint32(f, expansion.num_dictionaries) ) { return false; } for (size_t i = 0; i < expansion.num_dictionaries; i++) { if (!file_write_uint16(f, expansion.dictionary_ids[i])) { return false; } } if (!file_write_uint32(f, expansion.address_components)) { return false; } if (!file_write_uint8(f, expansion.separable)) { return false; } return true; }
bool graph_write(graph_t *self, FILE *f) { if (self == NULL || self->indptr == NULL || self->indices == NULL) { return false; } if (!file_write_uint32(f, self->m) || !file_write_uint32(f, self->n) || !file_write_uint8(f, (uint8_t)self->fixed_rows)) { return false; } uint64_t len_indptr = (uint64_t)self->indptr->n; if (!file_write_uint64(f, len_indptr)) { return false; } for (int i = 0; i < len_indptr; i++) { if (!file_write_uint32(f, self->indptr->a[i])) { return false; } } uint64_t len_indices = (uint64_t)self->indices->n; if (!file_write_uint64(f, len_indices)) { return false; } for (int i = 0; i < len_indices; i++) { if (!file_write_uint32(f, self->indices->a[i])) { return false; } } return true; }