summaryrefslogtreecommitdiff
path: root/lib/domain/libimagmail/src/hasher.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2019-02-20 16:23:19 +0100
committerMatthias Beyer <mail@beyermatthias.de>2019-02-20 16:23:19 +0100
commit44896327e567860bc1e924024f4a4a0403556322 (patch)
treeeeda58359f7a28d58bc626aeaf059672180f76bc /lib/domain/libimagmail/src/hasher.rs
parent27c0a30494b7b827b48e62bfc90ec96da35e8e00 (diff)
parentdfc02a56799504e268b02c089d9070ec1d038f9b (diff)
downloadimag-44896327e567860bc1e924024f4a4a0403556322.zip
imag-44896327e567860bc1e924024f4a4a0403556322.tar.gz
Merge branch 'rewrite-mail-code' into master
This merge includes the rewritten mail infrastructure. It was rewritten for the new libimagentryref API, but might not be complete in regards towards maildir handling. Also, it only contains minimal features, not even bulk-import is implemented yet. Also, sending, receiving and other nice-to-have MUA features are not yet implemented. Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'lib/domain/libimagmail/src/hasher.rs')
-rw-r--r--lib/domain/libimagmail/src/hasher.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/domain/libimagmail/src/hasher.rs b/lib/domain/libimagmail/src/hasher.rs
new file mode 100644
index 0000000..270b177
--- /dev/null
+++ b/lib/domain/libimagmail/src/hasher.rs
@@ -0,0 +1,40 @@
+//
+// imag - the personal information management suite for the commandline
+// Copyright (C) 2015-2019 Matthias Beyer <mail@beyermatthias.de> and contributors
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; version
+// 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+//
+
+use std::path::Path;
+
+use failure::Fallible as Result;
+
+use libimagentryref::hasher::Hasher;
+
+pub struct MailHasher;
+
+impl Hasher for MailHasher {
+ const NAME: &'static str = "MailHasher";
+
+ /// hash the file at path `path`
+ ///
+ /// TODO: This is the expensive implementation. We use the message Id as hash, which is
+ /// convenient and _should_ be safe
+ ///
+ /// TODO: Confirm that this approach is right
+ fn hash<P: AsRef<Path>>(path: P) -> Result<String> {
+ ::util::get_message_id_for_mailfile(path)
+ }
+}