From a78f3f261d89d5d991509dc71284f5ab13be734e Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Tue, 28 May 2024 19:03:21 +0300 Subject: [PATCH] jmap/rfc8620: move submodules to jmap/ Part of simplifying jmap module hierarchy. Signed-off-by: Manos Pitsidianakis --- melib/src/jmap/{rfc8620 => }/argument.rs | 0 melib/src/jmap/{rfc8620 => }/capabilities.rs | 10 +++++----- melib/src/jmap/{rfc8620 => }/comparator.rs | 0 melib/src/jmap/connection.rs | 8 +++++--- melib/src/jmap/email.rs | 5 ++--- melib/src/jmap/{rfc8620 => }/filters.rs | 0 melib/src/jmap/mod.rs | 13 ++++++++++--- melib/src/jmap/protocol.rs | 8 ++++---- melib/src/jmap/rfc8620.rs | 14 ++++---------- melib/src/jmap/submission.rs | 3 ++- melib/src/jmap/tests.rs | 9 ++++++--- 11 files changed, 38 insertions(+), 32 deletions(-) rename melib/src/jmap/{rfc8620 => }/argument.rs (100%) rename melib/src/jmap/{rfc8620 => }/capabilities.rs (88%) rename melib/src/jmap/{rfc8620 => }/comparator.rs (100%) rename melib/src/jmap/{rfc8620 => }/filters.rs (100%) diff --git a/melib/src/jmap/rfc8620/argument.rs b/melib/src/jmap/argument.rs similarity index 100% rename from melib/src/jmap/rfc8620/argument.rs rename to melib/src/jmap/argument.rs diff --git a/melib/src/jmap/rfc8620/capabilities.rs b/melib/src/jmap/capabilities.rs similarity index 88% rename from melib/src/jmap/rfc8620/capabilities.rs rename to melib/src/jmap/capabilities.rs index b3b49752..2651f125 100644 --- a/melib/src/jmap/rfc8620/capabilities.rs +++ b/melib/src/jmap/capabilities.rs @@ -45,18 +45,18 @@ macro_rules! _impl_jmap_capability { #[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] pub struct $ident; - impl $crate::jmap::rfc8620::capabilities::Capability for $ident { + impl $crate::jmap::capabilities::Capability for $ident { const URI: &'static str = $key; const NAME: &'static str = $name; } impl $ident { pub const fn uri() -> &'static str { - ::URI + ::URI } pub const fn name() -> &'static str { - ::NAME + ::NAME } } @@ -65,7 +65,7 @@ macro_rules! _impl_jmap_capability { where S: ::serde::ser::Serializer, { - serializer.serialize_str(::URI) + serializer.serialize_str(::URI) } } @@ -74,7 +74,7 @@ macro_rules! _impl_jmap_capability { where D: ::serde::de::Deserializer<'de>, { - if <&'_ str>::deserialize(deserializer)? == ::URI { + if <&'_ str>::deserialize(deserializer)? == ::URI { return Ok(Self); } diff --git a/melib/src/jmap/rfc8620/comparator.rs b/melib/src/jmap/comparator.rs similarity index 100% rename from melib/src/jmap/rfc8620/comparator.rs rename to melib/src/jmap/comparator.rs diff --git a/melib/src/jmap/connection.rs b/melib/src/jmap/connection.rs index 4c709797..f909eef9 100644 --- a/melib/src/jmap/connection.rs +++ b/melib/src/jmap/connection.rs @@ -32,18 +32,20 @@ use url::Url; use crate::{ error::{Error, NetworkErrorKind, Result}, jmap::{ + argument::Argument, + capabilities::*, deserialize_from_str, email::{ EmailChanges, EmailFilterCondition, EmailGet, EmailObject, EmailQueryChanges, EmailQueryChangesResponse, }, + filters::Filter, identity::{IdentityGet, IdentityObject, IdentitySet}, mailbox::MailboxObject, protocol::{self, JmapMailCapability, Request}, rfc8620::{ - argument::Argument, capabilities::*, filters::Filter, AddedItem, Changes, - ChangesResponse, Get, GetResponse, Id, MethodResponse, QueryChanges, - QueryChangesResponse, ResultField, Set, State, + AddedItem, Changes, ChangesResponse, Get, GetResponse, Id, MethodResponse, + QueryChanges, QueryChangesResponse, ResultField, Set, State, }, session::Session, JmapServerConf, Store, diff --git a/melib/src/jmap/email.rs b/melib/src/jmap/email.rs index 2fca0459..fdef0b8b 100644 --- a/melib/src/jmap/email.rs +++ b/melib/src/jmap/email.rs @@ -30,12 +30,11 @@ use crate::{ email::address::{Address, MailboxAddress}, jmap::{ deserialize_from_str, + filters::{Filter, FilterCondition, FilterTrait}, mailbox::MailboxObject, protocol::Method, rfc8620::{ - bool_false, - filters::{Filter, FilterCondition, FilterTrait}, - u64_zero, BlobObject, Changes, Get, Id, Object, Query, QueryChanges, + bool_false, u64_zero, BlobObject, Changes, Get, Id, Object, Query, QueryChanges, QueryChangesResponse, ResultField, Set, }, thread::ThreadObject, diff --git a/melib/src/jmap/rfc8620/filters.rs b/melib/src/jmap/filters.rs similarity index 100% rename from melib/src/jmap/rfc8620/filters.rs rename to melib/src/jmap/filters.rs diff --git a/melib/src/jmap/mod.rs b/melib/src/jmap/mod.rs index d8d7b7bc..11209315 100644 --- a/melib/src/jmap/mod.rs +++ b/melib/src/jmap/mod.rs @@ -90,20 +90,27 @@ use session::*; pub mod rfc8620; use rfc8620::{ - argument::Argument, capabilities::JmapCoreCapability, download_request_format, filters::Filter, - upload_request_format, BlobObject, Get, GetResponse, Id, MethodResponse, Object, Query, - QueryResponse, Set, SetResponse, State, UploadResponse, + download_request_format, upload_request_format, BlobObject, Get, GetResponse, Id, + MethodResponse, Object, Query, QueryResponse, Set, SetResponse, State, UploadResponse, }; pub mod backend_mailbox; use backend_mailbox::JmapMailbox; +pub mod argument; +pub mod capabilities; +pub mod comparator; pub mod email; +pub mod filters; pub mod identity; pub mod mailbox; pub mod submission; pub mod thread; +use argument::Argument; +use capabilities::JmapCoreCapability; +use filters::Filter; + #[cfg(test)] mod tests; diff --git a/melib/src/jmap/protocol.rs b/melib/src/jmap/protocol.rs index b47117e5..7be6dfb5 100644 --- a/melib/src/jmap/protocol.rs +++ b/melib/src/jmap/protocol.rs @@ -35,14 +35,14 @@ use crate::{ email::Envelope, error::Result, jmap::{ + argument::Argument, backend_mailbox::JmapMailbox, + capabilities::*, deserialize_from_str, email::{EmailFilterCondition, EmailGet, EmailObject, EmailQuery}, + filters::Filter, mailbox::{MailboxGet, MailboxObject}, - rfc8620::{ - argument::Argument, capabilities::*, filters::Filter, Get, GetResponse, Id, - MethodResponse, Object, Query, QueryResponse, State, - }, + rfc8620::{Get, GetResponse, Id, MethodResponse, Object, Query, QueryResponse, State}, JmapConnection, Store, }, Flag, LazyCountSet, MailboxHash, diff --git a/melib/src/jmap/rfc8620.rs b/melib/src/jmap/rfc8620.rs index 8457d1ea..1ac9b6bf 100644 --- a/melib/src/jmap/rfc8620.rs +++ b/melib/src/jmap/rfc8620.rs @@ -36,18 +36,12 @@ use url::Url; use crate::{ email::parser::BytesExt, error::{Error, ErrorKind, Result}, - jmap::{deserialize_from_str, protocol::Method, session::Session}, + jmap::{ + argument::Argument, comparator::Comparator, deserialize_from_str, filters, + protocol::Method, session::Session, + }, }; -pub mod argument; -pub mod comparator; -pub mod filters; - -use argument::Argument; -use comparator::Comparator; - -pub mod capabilities; - pub type PatchObject = Value; impl Object for PatchObject { diff --git a/melib/src/jmap/submission.rs b/melib/src/jmap/submission.rs index 067690ec..0ec20766 100644 --- a/melib/src/jmap/submission.rs +++ b/melib/src/jmap/submission.rs @@ -24,10 +24,11 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; use serde_json::Value; use crate::jmap::{ + argument::Argument, email::EmailObject, identity::IdentityObject, protocol::Method, - rfc8620::{argument::Argument, Account, BlobObject, Id, Object, PatchObject, Set}, + rfc8620::{Account, BlobObject, Id, Object, PatchObject, Set}, thread::ThreadObject, }; diff --git a/melib/src/jmap/tests.rs b/melib/src/jmap/tests.rs index 2f20c636..3a78efae 100644 --- a/melib/src/jmap/tests.rs +++ b/melib/src/jmap/tests.rs @@ -28,8 +28,9 @@ fn test_jmap_query() { use crate::jmap::{ email::{EmailFilterCondition, EmailObject, EmailQuery}, + filters::Filter, protocol::Request, - rfc8620::{filters::Filter, Query}, + rfc8620::Query, }; let q: crate::search::Query = crate::search::Query::try_from( "subject:wah or (from:Manos and (subject:foo or subject:bar))", @@ -139,9 +140,10 @@ fn test_jmap_email_submission_object() { use serde_json::json; use crate::jmap::{ + argument::Argument, email::{EmailImport, EmailObject}, identity::IdentityObject, - rfc8620::{argument::Argument, Account, Id, ResultField}, + rfc8620::{Account, Id, ResultField}, submission::{EmailSubmissionObject, UndoStatus}, }; let account_id: Id = "blahblah".into(); @@ -279,10 +281,11 @@ fn test_jmap_argument_serde() { use serde_json::json; use crate::jmap::{ + argument::Argument, email::{EmailImport, EmailImportObject, EmailObject}, mailbox::MailboxObject, protocol::Request, - rfc8620::{argument::Argument, BlobObject, Id, ResultField, Set}, + rfc8620::{BlobObject, Id, ResultField, Set}, submission::{EmailSubmissionObject, EmailSubmissionSet}, };