melib/notmuch: add AccountHash field to NotmuchDb

jmap-eventsource
Manos Pitsidianakis 2021-01-05 01:10:55 +02:00
parent 4f164dc700
commit 806254436b
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
1 changed files with 9 additions and 10 deletions

View File

@ -229,6 +229,7 @@ pub struct NotmuchDb {
tag_index: Arc<RwLock<BTreeMap<u64, String>>>, tag_index: Arc<RwLock<BTreeMap<u64, String>>>,
path: PathBuf, path: PathBuf,
account_name: Arc<String>, account_name: Arc<String>,
account_hash: AccountHash,
event_consumer: BackendEventConsumer, event_consumer: BackendEventConsumer,
save_messages_to: Option<PathBuf>, save_messages_to: Option<PathBuf>,
} }
@ -352,6 +353,11 @@ impl NotmuchDb {
} }
} }
let account_hash = {
let mut hasher = DefaultHasher::new();
hasher.write(s.name().as_bytes());
hasher.finish()
};
Ok(Box::new(NotmuchDb { Ok(Box::new(NotmuchDb {
lib, lib,
revision_uuid: Arc::new(RwLock::new(0)), revision_uuid: Arc::new(RwLock::new(0)),
@ -363,6 +369,7 @@ impl NotmuchDb {
mailboxes: Arc::new(RwLock::new(mailboxes)), mailboxes: Arc::new(RwLock::new(mailboxes)),
save_messages_to: None, save_messages_to: None,
account_name: Arc::new(s.name().to_string()), account_name: Arc::new(s.name().to_string()),
account_hash,
event_consumer, event_consumer,
})) }))
} }
@ -556,11 +563,7 @@ impl MailBackend for NotmuchDb {
} }
fn refresh(&mut self, _mailbox_hash: MailboxHash) -> ResultFuture<()> { fn refresh(&mut self, _mailbox_hash: MailboxHash) -> ResultFuture<()> {
let account_hash = { let account_hash = self.account_hash;
let mut hasher = DefaultHasher::new();
hasher.write(self.account_name.as_bytes());
hasher.finish()
};
let mut database = NotmuchDb::new_connection( let mut database = NotmuchDb::new_connection(
self.path.as_path(), self.path.as_path(),
self.revision_uuid.clone(), self.revision_uuid.clone(),
@ -594,11 +597,7 @@ impl MailBackend for NotmuchDb {
extern crate notify; extern crate notify;
use notify::{watcher, RecursiveMode, Watcher}; use notify::{watcher, RecursiveMode, Watcher};
let account_hash = { let account_hash = self.account_hash;
let mut hasher = DefaultHasher::new();
hasher.write(self.account_name.as_bytes());
hasher.finish()
};
let lib = self.lib.clone(); let lib = self.lib.clone();
let path = self.path.clone(); let path = self.path.clone();
let revision_uuid = self.revision_uuid.clone(); let revision_uuid = self.revision_uuid.clone();