diff options
author | Mauro D <mauro@stalw.art> | 2023-06-22 17:29:39 +0000 |
---|---|---|
committer | Mauro D <mauro@stalw.art> | 2023-06-22 17:29:39 +0000 |
commit | e1c3190b486f3e89c33bbaeb6f26693fcc197a15 (patch) | |
tree | a46b49a3f6a5dacd2898e55564ed6318376e7922 /crates/imap-proto | |
parent | 5fda55064296f1d4e09169f9c886fd2e6d1ae2a6 (diff) |
IMAP mailbox synchronization
Diffstat (limited to 'crates/imap-proto')
-rw-r--r-- | crates/imap-proto/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/imap-proto/src/lib.rs | 11 | ||||
-rw-r--r-- | crates/imap-proto/src/protocol/status.rs | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/crates/imap-proto/Cargo.toml b/crates/imap-proto/Cargo.toml index c12d6347..faa16d59 100644 --- a/crates/imap-proto/Cargo.toml +++ b/crates/imap-proto/Cargo.toml @@ -5,6 +5,7 @@ edition = "2021" resolver = "2" [dependencies] +jmap_proto = { path = "../jmap-proto" } mail-parser = { git = "https://github.com/stalwartlabs/mail-parser", features = ["full_encoding", "serde_support", "ludicrous_mode"] } ahash = { version = "0.8" } chrono = { version = "0.4"} diff --git a/crates/imap-proto/src/lib.rs b/crates/imap-proto/src/lib.rs index 44d8026e..de46327a 100644 --- a/crates/imap-proto/src/lib.rs +++ b/crates/imap-proto/src/lib.rs @@ -1,5 +1,6 @@ use std::borrow::Cow; +use jmap_proto::error::method::MethodError; use protocol::capability::Capability; pub mod parser; @@ -191,8 +192,8 @@ impl StatusResponse { self } - pub fn with_tag(mut self, tag: String) -> Self { - self.tag = Some(tag); + pub fn with_tag(mut self, tag: impl Into<String>) -> Self { + self.tag = Some(tag.into()); self } @@ -224,4 +225,10 @@ impl StatusResponse { } } +impl From<MethodError> for StatusResponse { + fn from(_: MethodError) -> Self { + StatusResponse::database_failure() + } +} + pub type Result<T> = std::result::Result<T, StatusResponse>; diff --git a/crates/imap-proto/src/protocol/status.rs b/crates/imap-proto/src/protocol/status.rs index b50de1b4..2bee93f8 100644 --- a/crates/imap-proto/src/protocol/status.rs +++ b/crates/imap-proto/src/protocol/status.rs @@ -32,7 +32,7 @@ pub struct Arguments { pub items: Vec<Status>, } -#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub enum Status { Messages, UidNext, |