Todd Mortimer
826e6d413b
Fix tests and examples.
2021-07-17 16:51:35 -04:00
Todd Mortimer
3f2331423c
Rework Name and Fetch to use ouroboros.
...
Use a helper function in `parse_many_into` to support parsing into
any container that implements Extend. Refactor Capabilities to use it.
Delete ZeroCopy and associated bits.
Move Flag into it's own module in types.
2021-07-17 16:32:26 -04:00
Todd Mortimer
c2d3aed978
Convert Capabilities to ouroboros.
2021-07-05 20:11:36 -04:00
comex
55cd6465c7
Support parsing STATUS responses. (v2) ( #192 )
...
Fixes #185 .
2021-05-16 18:12:16 -04:00
mordak
1db492ed3b
Add test for dovecot unsolicited OK progress message. ( #196 )
2021-04-25 19:59:05 -04:00
Clément DOUIN
2898e19530
RFC 5256 - SORT command ( #180 )
2021-04-19 23:03:23 -04:00
Todd Mortimer
f2d7919f60
Do not wrap AttributeValue.
2021-04-07 20:10:33 -04:00
Todd Mortimer
5942553e7d
Use iterators for Flag::from_strs()
2021-04-07 18:09:46 -04:00
Todd Mortimer
e1db863691
Add helper function to transform a vec of flag strings into a vec of Flags.
...
Also use it where we were previously iterating manually.
2021-04-05 15:59:12 -04:00
Todd Mortimer
5e3f087007
Merge remote-tracking branch 'origin/master' into idle-responses
2021-04-05 15:23:50 -04:00
Todd Mortimer
35ddb48d3b
Remove redundant slice.
...
Thanks clippy.
2021-03-28 18:19:57 -04:00
Todd Mortimer
529401a36d
Implement a method to pass unilateral responses while IDLE.
...
While IDLE, the server sends unilateral responses to notify the client of
changes to the mailbox as they happen. Instead of always exiting the IDLE
on any change, allow the caller to pass a callback function which receives
the messages and returns an action to either Continue IDLE or Stop and exit.
For clients wishing to use the previous behaviour, a callback_stop convenience
function is provided that terminates the IDLE on any change to the mailbox.
2021-03-28 15:27:39 -04:00
Todd Mortimer
ec835d67e4
Rename handle_unilateral to try_handle_unilateral.
...
More accurately conveys that the function might not actually handle it.
2021-03-20 14:21:13 -04:00
Jon Gjengset
fa30a90827
Handle other MailboxDatum
2021-03-14 11:02:03 -07:00
Jon Gjengset
7860b14088
Revert "Release first 3.0.0 alpha"
...
This reverts commit 8490407d2e .
2021-03-06 15:35:00 -08:00
Jon Gjengset
8490407d2e
Release first 3.0.0 alpha
2021-03-06 15:34:42 -08:00
Jon Gjengset
18ca65dd3f
Expose mailbox read-only flag
2021-03-06 15:02:48 -08:00
Jon Gjengset
9b78550394
Adopt latest imap_proto and expose error status codes
2021-03-06 14:53:14 -08:00
Jon Gjengset
3cf13d2260
cargo fmt
2021-03-06 09:44:56 -08:00
Jon Gjengset
a466e947bd
Merge branch 'master' into metadata-merge
2021-03-06 12:43:43 -05:00
Jon Gjengset
137f3de14f
Merge branch 'master' into mod_seq_vanished
2021-03-06 12:40:30 -05:00
Todd Mortimer
166a0cb6b3
Link to QRESYNC RFC section describing VANISHED vs EXPUNGE responses.
2020-12-06 15:49:11 -05:00
Todd Mortimer
a9788ad1e0
Add a Deleted type to wrap EXPUNGE and VANISHED responses.
...
EXPUNGE may return either a series of EXPUNGE responses each with
a single message sequence number, or a VANISHED response with a
sequence set of UIDs. This adds a wrapper enum and some associated
iterators to make it easy to handle these in the client.
2020-12-05 20:32:14 -05:00
Todd Mortimer
c49e78b4d0
Update imap-proto and nom dependencies.
...
Add support for HIGHESTMODSEQ (RFC 4551) and VANISHED (RFC 7162),
which allows users to quickly synchronize to a mailbox by fetching
only changes since the last known highest mod sequence.
2020-11-11 11:37:33 -05:00
sergey
a29b6f0cce
Adding METADATA support
2020-05-19 15:58:43 +03:00
Jon Gjengset
0c3ce7943d
Expose unilateral mailbox flag changes
...
This is a backwards incompatible change, since it adds a variant to a
public enum.
2020-05-18 14:12:13 -04:00
Jon Gjengset
b74bfa79c6
FLAGS can be sent as unilateral response
...
Fixes #161 (well, the side-issue in #161 ).
2020-05-18 14:03:16 -04:00
Jon Gjengset
949ea3bd6b
Bump dependencies
...
This also pulls in imap-proto 0.11, which exposes message envelopes as
`&[u8]` instead of `&str`. This directly affects our public API.
2020-02-20 12:49:25 -05:00
Alexander Krotov
2221cd2e18
Update imap-proto and test that "IMAP4REV1" capability is accepted
...
See issue https://github.com/djc/tokio-imap/issues/54
2019-09-04 18:08:12 +03:00
avitex
ff48dc9755
Decrease alloc on auth resp parsing
2019-09-03 23:41:57 +10:00
Lucas
3a5c2e9d91
Implemented new enumerated Capabilities from imap-proto crate.
2019-09-02 23:00:40 +10:00
Jon Gjengset
466c06c1f2
Avoid unnecessary import
2019-04-29 12:07:04 -04:00
Jon Gjengset
c0e1fbba0c
Avoid duplicating unilateral response handling
2019-03-18 21:43:30 -04:00
Jon Gjengset
b0ac079c30
rustfmt
2019-03-18 21:37:39 -04:00
Emmanuel Lesueur
5df0759446
Handle unsolicited responses in noop.
2019-03-16 13:31:52 +01:00
Jon Gjengset
67ee2f5175
Bump version for imap-proto fixes
...
- A `NIL` hierarchy delimiter in a `Name` is now properly parsed and exposed as `None`
- `RFC822.TEXT` responses are now returned by `Fetch::text()`.
2018-12-07 16:34:57 -05:00
Jon Gjengset
1b086d40de
Prep for 2018 edition [skip ci]
2018-11-28 09:44:01 -05:00
Jon Gjengset
a610283861
Fix nightly clippy warning
2018-11-24 12:45:07 -05:00
Jon Gjengset
bce4831ccb
Clippy clean
2018-11-22 14:27:07 -05:00
Jon Gjengset
5dd9dfe469
Even more doc updates
2018-11-22 14:00:58 -05:00
Jon Gjengset
f83742dc3d
A significant documentation upgrade
...
Fixes #77 .
Touches on #74 .
Fixes #70 through documentation (I think?)
Fixes #62 .
2018-11-21 16:37:47 -05:00
Kim Minh Kaplan
de5a38366c
[BUGFIX] Expect a space after the "+" in Client::authenticate.
...
RFC 3501: A continue-req from the server starts with "+" SP.
2018-11-17 07:37:33 +00:00
Kim Minh Kaplan
9e0a5d7c8a
Escape '+' character in regexp.
2018-11-09 22:35:22 +00:00
Johannes Schilling
8d7b527331
more tests and more handling for unsolicited responses
2018-11-01 21:49:14 +01:00
Johannes Schilling
930bd86dbf
pass unsolicited responses channel by reference
...
as suggested in
https://github.com/mattnenterprise/rust-imap/pull/91#issuecomment-434055085
2018-11-01 21:47:50 +01:00
Johannes Schilling
f98398aecf
send unsolicited responses to a channel instead of discarding them
...
notes
* i tried to avoid the term "async", because that term is very
overloaded and we're not using e.g. tokio/async-io here
* i'm a little unhappy having to string the channel through the
parser, because that seems rather a part of the client logic than
parsing. on the other hand it's better than passing the whole
client, so there's that at least.
2018-11-01 21:46:49 +01:00
Jon Gjengset
5c91f4c1bb
Move to new nom + tokio-proto
2018-10-31 21:15:19 -04:00
Jon Gjengset
e68d61a1e2
rustfmt
2018-10-31 21:15:13 -04:00
Jon Gjengset
a10769feba
Tidy up search a little
...
There's no reason to carry around a ZeroCopy here, since we own all the
values.
2018-10-05 14:53:12 -04:00
Massimiliano Torromeo
11e666ea91
Use imap_proto to parse the search responses into a HashSet of ids
2018-10-05 18:20:59 +02:00