Manos Pitsidianakis
b49d965695
Fix unused var etc warnings
2021-09-04 16:52:17 +03:00
Manos Pitsidianakis
781a1d0e1b
melib/backends: add collection() method to MailBackend
...
Keep track of the Collection state in the backend side
2021-01-10 01:31:27 +02:00
Manos Pitsidianakis
a34f0aac5b
melib: fix bincode serialization
...
Previous commit changed bincode deserializes in maildir and sqlite3.rs
from bincode::deserialize_from to using bincode::config::DefaultOptions
and bincode::Options trait's method deserialize_from.
However, these two different deserializes use a different default
settings: https://github.com/servo/bincode/issues/348
Specifically, varint encoding for integers is the default for
DefaultOptions but not when using bincode::{de,}serialize_* functions.
That means that serialized structs were not able to be deserialized.
This commit makes all {de,}serializations use the DefaultOptions
interface rather than the top level functions.
2020-11-09 00:40:32 +02:00
Manos Pitsidianakis
00f5c4b9c0
melib/maildir: split parsing into big chunks
2020-10-20 23:27:10 +03:00
Manos Pitsidianakis
662706607b
melib: remove memmap dependency
...
It's unmaintained, and the IO performance gains are negligible
2020-10-20 22:41:44 +03:00
Manos Pitsidianakis
cd68008e67
melib: Implement delete_messages for IMAP, Maildir
2020-10-13 13:57:04 +03:00
Manos Pitsidianakis
4829e13c47
melib/maildir: impl copy_messages for Maildir
2020-09-11 17:02:27 +03:00
Manos Pitsidianakis
c0c588be9c
melib/maildir: add message flag initialize in bytes
...
Maildir flags from filesystem path was not set correctly on Envelope
initialization in maildir backend
2020-09-10 21:19:38 +03:00
Manos Pitsidianakis
14663e46b9
Remove some old TODO comments
2020-08-26 00:54:07 +03:00
Manos Pitsidianakis
4217839155
melib/email: remove Envelope::from_token
2020-08-26 00:54:07 +03:00
Manos Pitsidianakis
fc25c7b165
Fix compiler warnings
2020-08-26 00:54:07 +03:00
Manos Pitsidianakis
94433cfc40
melib/backends: cleanup MailBackend trait definition
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
3eadaba34e
Replace old pseudo-async code with blocking rust async
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
a190805384
melib/backends: Add BackendEvent enum
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
79b2b38e32
melib: add supports_submission backend capability
...
To be used by NNTP, JMAP and some IMAP servers with BURL capability
2020-08-09 14:56:34 +03:00
Manos Pitsidianakis
ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
cc119c19b0
melib/maildir: send NewFlags events
2020-07-26 16:09:41 +03:00
Manos Pitsidianakis
3f8aa560f0
melib/MailBackend: add MailBackendCapabilities struct
2020-07-25 17:53:04 +03:00
Manos Pitsidianakis
00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
fadb3634e0
melib: take MailboxHash instead of &Mailbox in fetch*()
2020-07-23 13:23:23 +03:00
Manos Pitsidianakis
9103d05617
melib: s/get/fetch in MailBackend methods
2020-07-18 12:34:13 +03:00
Manos Pitsidianakis
32f196143e
melib: add supports_search() method to MailBackend
2020-07-17 00:02:02 +03:00
Manos Pitsidianakis
231471fa8c
MailBackend: add is_{async,online} methods
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
94e0aa4fe7
MailBackend: change get() ret type to Result<_>
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
a7e177586a
Fix clippy lints
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
1ddde9ccba
BackendOp: change fetch_flags() retval to future
2020-07-06 15:26:35 +03:00
Manos Pitsidianakis
e06308fed2
MailBackend: change more methods to Futures
2020-07-06 15:26:00 +03:00
Manos Pitsidianakis
03522c0298
melib: Fixup warnings in imap_async, maildir
2020-07-06 15:25:17 +03:00
Manos Pitsidianakis
ee10cdbcd5
Make get_async() return a Stream
2020-07-06 15:12:11 +03:00
Manos Pitsidianakis
a38764f490
Add somewhat-working async IMAP backend
2020-07-06 15:12:05 +03:00
Manos Pitsidianakis
b72a1ca6d8
WIP maildir async
2020-07-06 15:08:32 +03:00
Manos Pitsidianakis
efb06be09b
melib: return Result<_> from operation()
...
Envelope might have been deleted before main thread requests an
operation, which is a race condition.
2020-06-23 20:10:54 +03:00
Manos Pitsidianakis
f3d5edfe14
Add copy/move to other account operations
2020-06-08 22:11:43 +03:00
Manos Pitsidianakis
e4a1ab8a09
Fix rustfmt suggestions
2020-05-29 20:43:39 +03:00
Manos Pitsidianakis
bea0ca61f5
maildir: conditionally accept invalid subdirs
...
If directory is invalid (i.e. has no {cur,new,tmp} subfolders), accept
it ONLY if it contains subdirs of any depth that are valid maildir
paths.
For example, this change will accept the following directory tree:
```
invalid_maildir
└── valid_maildir
├── cur
├── new
└── tmp
```
2020-05-28 21:02:49 +03:00
Manos Pitsidianakis
8648b229ad
Add AccountHash to RefreshEvent
...
Different accounts might have same inboxes with same MailboxHashes. Use
the hash of the account's name to differentiate.
2020-05-10 22:10:17 +03:00
Manos Pitsidianakis
eb701695f7
Remove fnv crate
2020-05-10 21:18:56 +03:00
Manos Pitsidianakis
330134af5a
maildir: update mailbox unread count on file rename event
2020-05-06 17:38:29 +03:00
Manos Pitsidianakis
61be6e4c96
notmuch: fix wrong mailbox path in save()
...
mailbox path was passed to save_to_mailbox() with a cur/ tail and
save_to_mailbox() added an extra cur/ tail
2020-03-18 19:22:17 +02:00
Manos Pitsidianakis
4ac52d9d5b
Replace every use of Folder with Mailbox
...
Use Mailbox for consistency.
2020-02-26 10:54:10 +02:00
Manos Pitsidianakis
499fd59c6e
melib/imap: implement refresh()
2020-02-25 22:15:13 +02:00
Manos Pitsidianakis
f38d03e43a
melib: {create,delete}_folder returns updated folders
...
Potential parent folders will have their children fields updated, so
just return all folders.
2020-02-25 22:15:13 +02:00
Manos Pitsidianakis
9616fbb544
melib/maildir: fix wrong subscription status in folders
...
MaildirFolder::new() was checking for subscribed status though that is
supposed to be done in MaildirType::new()
2020-02-08 23:55:47 +02:00
Manos Pitsidianakis
f208948651
melib: add mailbox delete/create to IMAP
2020-02-08 23:54:14 +02:00
Manos Pitsidianakis
21526b5faf
melib: make Work use FnOnce closures
...
There was no need to use Fn() instead of FnOnce()
2019-12-20 00:53:43 +02:00
Manos Pitsidianakis
2b6f6ab42c
melib: Add BackendFolder methods, move special usage logic to backend
...
- add count() method to return (unseen, total) counts
- add is_subscribed()
- add set_special_usage() and set_is_subscribed()
concerns #8
2019-12-18 08:58:49 +02:00
Manos Pitsidianakis
0201241786
melib/backends: MailBackend::refresh() returns Result
...
Handle cases were refresh() would fail properly. Fixes a crash reported in #13
2019-12-15 08:55:08 +02:00
Manos Pitsidianakis
65efb23f14
melib/MailBackend: add refresh() method
...
Initiate refresh manually.
2019-12-14 18:58:59 +02:00
Manos Pitsidianakis
2e38ea11e2
melib: make MailBackend::is_online() return Result<()>
...
Return Result<()> instead of bool to indicate connection status in order
to be able to show errors to user.
2019-12-14 18:57:52 +02:00
Manos Pitsidianakis
ba52c59859
bin: add backend specific validation functions for --test-config flag
2019-11-27 17:42:11 +02:00