diff options
| author | David Bremner <david@tethera.net> | 2021-12-04 09:27:30 -0400 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2021-12-04 09:27:30 -0400 |
| commit | 1e7d33961e626488b09b56c8543e8edf00648670 (patch) | |
| tree | 20c45ab5912db85b2aefd399c31b5318356ebf43 /lib/database-private.h | |
| parent | 20b2ae12183a5be79d2f3d8da7943bc358e8202c (diff) | |
| parent | d7f95724132bf658fd151630185899737e2ed829 (diff) | |
Merge branch 'release'
Diffstat (limited to 'lib/database-private.h')
| -rw-r--r-- | lib/database-private.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/database-private.h b/lib/database-private.h index 7a045051..8133e364 100644 --- a/lib/database-private.h +++ b/lib/database-private.h @@ -190,6 +190,39 @@ operator& (notmuch_field_flag_t a, notmuch_field_flag_t b) Xapian::QueryParser::FLAG_WILDCARD | \ Xapian::QueryParser::FLAG_PURE_NOT) +/* + * Which parameters were explicit when the database was opened */ +typedef enum { + NOTMUCH_PARAM_NONE = 0, + NOTMUCH_PARAM_DATABASE = 1 << 0, + NOTMUCH_PARAM_CONFIG = 1 << 1, + NOTMUCH_PARAM_PROFILE = 1 << 2, +} notmuch_open_param_t; + +/* + * define bitwise operators to hide casts */ + +inline notmuch_open_param_t +operator| (notmuch_open_param_t a, notmuch_open_param_t b) +{ + return static_cast<notmuch_open_param_t>( + static_cast<unsigned>(a) | static_cast<unsigned>(b)); +} + +inline notmuch_open_param_t& +operator|= (notmuch_open_param_t &a, notmuch_open_param_t b) +{ + a = a | b; + return a; +} + +inline notmuch_open_param_t +operator& (notmuch_open_param_t a, notmuch_open_param_t b) +{ + return static_cast<notmuch_open_param_t>( + static_cast<unsigned>(a) & static_cast<unsigned>(b)); +} + struct _notmuch_database { bool exception_reported; @@ -249,6 +282,9 @@ struct _notmuch_database { /* Cached and possibly overridden configuration */ notmuch_string_map_t *config; + + /* Track what parameters were specified when opening */ + notmuch_open_param_t params; }; /* Prior to database version 3, features were implied by the database |
