1 #ifndef MAILBOX_SEARCH_RESULT_PRIVATE_H 2 #define MAILBOX_SEARCH_RESULT_PRIVATE_H 3 4 #include "mail-storage.h" 5 6 struct mail_search_result { 7 struct mailbox *box; 8 enum mailbox_search_result_flags flags; 9 struct mail_search_args *search_args; 10 11 /* UIDs of messages currently in the result */ 12 ARRAY_TYPE(seq_range) uids; 13 /* UIDs of messages that will never match the result */ 14 ARRAY_TYPE(seq_range) never_uids; 15 ARRAY_TYPE(seq_range) removed_uids, added_uids; 16 17 bool args_have_flags:1; 18 bool args_have_keywords:1; 19 bool args_have_modseq:1; 20 }; 21 22 struct mail_search_result * 23 mailbox_search_result_alloc(struct mailbox *box, struct mail_search_args *args, 24 enum mailbox_search_result_flags flags); 25 26 /* called when initial search is done. */ 27 void mailbox_search_result_initial_done(struct mail_search_result *result); 28 void mailbox_search_results_initial_done(struct mail_search_context *ctx); 29 30 void mailbox_search_result_add(struct mail_search_result *result, uint32_t uid); 31 void mailbox_search_result_remove(struct mail_search_result *result, 32 uint32_t uid); 33 void mailbox_search_results_add(struct mail_search_context *ctx, uint32_t uid); 34 void mailbox_search_results_remove(struct mailbox *box, uint32_t uid); 35 36 void mailbox_search_result_never(struct mail_search_result *result, 37 uint32_t uid); 38 void mailbox_search_results_never(struct mail_search_context *ctx, 39 uint32_t uid); 40 41 #endif 42