8d80659e504ffb34bb0c6a633184fece35751b18Timo SirainenARRAY_DEFINE_TYPE(uid_range, struct uid_range);
f81a4d2002da0db33d11ca694d3a91b3ee2a0fdbTimo Sirainen uoff_t ext_intro_offset, ext_intro_end_offset;
4ee00532a265bdfb38539d811fcd12d51210ac35Timo Sirainen ARRAY(struct mail_index_expunge_handler) expunge_handlers;
0dffa25d211be541ee3c953b23566a1a990789dfTimo Sirainen bool internal_update:1; /* used by keywords for ext_intro */
e06c0b65c16ccce69bbee009ead14d7d3d17a256Timo Sirainenextern struct mail_transaction_map_functions mail_index_map_sync_funcs;
6a19e109ee8c5a6f688da83a86a7f6abeb71abddTimo Sirainenvoid mail_index_sync_map_init(struct mail_index_sync_map_ctx *sync_map_ctx,
5626ae5e3316eced244adb6485c0927f1c7fdc41Timo Sirainenvoid mail_index_sync_map_deinit(struct mail_index_sync_map_ctx *sync_map_ctx);
b0be0bead3d6963149f7f2a9504b8ab5aced9af5Timo Sirainenint mail_index_sync_map(struct mail_index_map **map,
6a4bfb2b0bb9f53fb1d4e705bf3948ef4d1ecccbTimo Sirainen enum mail_index_sync_handler_type type, bool force,
d143077bd518de129b8d446fb58e003903e50867Timo Sirainenint mail_index_sync_record(struct mail_index_sync_map_ctx *ctx,
d143077bd518de129b8d446fb58e003903e50867Timo Sirainen const void *data);
2a6af811ea3de3cf9e2f15e446674dd21b0705f3Timo Sirainenmail_index_sync_get_atomic_map(struct mail_index_sync_map_ctx *ctx);
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenvoid mail_index_sync_init_expunge_handlers(struct mail_index_sync_map_ctx *ctx);
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenmail_index_sync_deinit_expunge_handlers(struct mail_index_sync_map_ctx *ctx);
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenvoid mail_index_sync_init_handlers(struct mail_index_sync_map_ctx *ctx);
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenvoid mail_index_sync_deinit_handlers(struct mail_index_sync_map_ctx *ctx);
a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1Timo Sirainenvoid mail_index_sync_ext_init(struct mail_index_sync_map_ctx *ctx,
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenint mail_index_sync_ext_intro(struct mail_index_sync_map_ctx *ctx,
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenint mail_index_sync_ext_reset(struct mail_index_sync_map_ctx *ctx,
e76f5e07be5bec4e5ca99c3e093ff7f11edbe1b7Timo Sirainenint mail_index_sync_ext_hdr_update(struct mail_index_sync_map_ctx *ctx,
e76f5e07be5bec4e5ca99c3e093ff7f11edbe1b7Timo Sirainen const void *data);
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainenmail_index_sync_ext_rec_update(struct mail_index_sync_map_ctx *ctx,
a0d34d3982507f513a9d800082481e9faeb9a943Timo Sirainen const struct mail_transaction_ext_rec_update *u);
c5794838af9995f50bfecb06a3cd4f9a0ac77858Timo Sirainenmail_index_sync_ext_atomic_inc(struct mail_index_sync_map_ctx *ctx,
c5794838af9995f50bfecb06a3cd4f9a0ac77858Timo Sirainen const struct mail_transaction_ext_atomic_inc *u);
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainenint mail_index_sync_keywords(struct mail_index_sync_map_ctx *ctx,
16c89b1260c9d07c01c83a9219424d3727069b2eTimo Sirainen const struct mail_transaction_keyword_update *rec);
faed8babca9914257f34fb2e603d74016d563b2dTimo Sirainenmail_index_sync_keywords_reset(struct mail_index_sync_map_ctx *ctx,
faed8babca9914257f34fb2e603d74016d563b2dTimo Sirainen const struct mail_transaction_keyword_reset *r);
9887c39c5ba429169389153ca99de49e084a73f0Timo Sirainenvoid mail_index_sync_set_corrupted(struct mail_index_sync_map_ctx *ctx,