summaryrefslogtreecommitdiff
path: root/melib/src/backends/mbox.rs
diff options
context:
space:
mode:
Diffstat (limited to 'melib/src/backends/mbox.rs')
-rw-r--r--melib/src/backends/mbox.rs19
1 files changed, 7 insertions, 12 deletions
diff --git a/melib/src/backends/mbox.rs b/melib/src/backends/mbox.rs
index 9b08063b..d14e591b 100644
--- a/melib/src/backends/mbox.rs
+++ b/melib/src/backends/mbox.rs
@@ -136,9 +136,8 @@ use nom::{self, error::Error as NomError, error::ErrorKind as NomErrorKind, IRes
extern crate notify;
use self::notify::{watcher, DebouncedEvent, RecursiveMode, Watcher};
-use std::collections::hash_map::{DefaultHasher, HashMap};
+use std::collections::hash_map::HashMap;
use std::fs::File;
-use std::hash::Hasher;
use std::io::{BufReader, Read};
use std::os::unix::io::AsRawFd;
use std::path::{Path, PathBuf};
@@ -981,11 +980,7 @@ impl MailBackend for MboxType {
.map_err(MeliError::new)?;
debug!("watching {:?}", f.fs_path.as_path());
}
- let account_hash = {
- let mut hasher = DefaultHasher::new();
- hasher.write(self.account_name.as_bytes());
- hasher.finish()
- };
+ let account_hash = AccountHash::from_bytes(self.account_name.as_bytes());
let mailboxes = self.mailboxes.clone();
let mailbox_index = self.mailbox_index.clone();
let prefer_mbox_type = self.prefer_mbox_type;
@@ -1005,7 +1000,7 @@ impl MailBackend for MboxType {
Ok(event) => match event {
/* Update */
DebouncedEvent::NoticeWrite(pathbuf) | DebouncedEvent::Write(pathbuf) => {
- let mailbox_hash = get_path_hash!(&pathbuf);
+ let mailbox_hash = MailboxHash(get_path_hash!(&pathbuf));
let file = match std::fs::OpenOptions::new()
.read(true)
.write(true)
@@ -1067,7 +1062,7 @@ impl MailBackend for MboxType {
.values()
.any(|f| f.fs_path == pathbuf)
{
- let mailbox_hash = get_path_hash!(&pathbuf);
+ let mailbox_hash = MailboxHash(get_path_hash!(&pathbuf));
(sender)(
account_hash,
BackendEvent::Refresh(RefreshEvent {
@@ -1084,7 +1079,7 @@ impl MailBackend for MboxType {
}
DebouncedEvent::Rename(src, dest) => {
if mailboxes.lock().unwrap().values().any(|f| f.fs_path == src) {
- let mailbox_hash = get_path_hash!(&src);
+ let mailbox_hash = MailboxHash(get_path_hash!(&src));
(sender)(
account_hash,
BackendEvent::Refresh(RefreshEvent {
@@ -1336,7 +1331,7 @@ impl MboxType {
.file_name()
.map(|f| f.to_string_lossy().into())
.unwrap_or_default();
- let hash = get_path_hash!(&ret.path);
+ let hash = MailboxHash(get_path_hash!(&ret.path));
let read_only = if let Ok(metadata) = std::fs::metadata(&ret.path) {
metadata.permissions().readonly()
@@ -1374,7 +1369,7 @@ impl MboxType {
/* Look for other mailboxes */
for (k, f) in s.mailboxes.iter() {
if let Some(path_str) = f.extra.get("path") {
- let hash = get_path_hash!(path_str);
+ let hash = MailboxHash(get_path_hash!(path_str));
let pathbuf: PathBuf = path_str.into();
if !pathbuf.exists() || pathbuf.is_dir() {
return Err(MeliError::new(format!(