jmap/rfc8620: move submodules to jmap/

Part of simplifying jmap module hierarchy.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
pull/405/head
Manos Pitsidianakis 2 months ago
parent 50ecade74a
commit a78f3f261d
No known key found for this signature in database
GPG Key ID: 7729C7707F7E09D0

@ -45,18 +45,18 @@ macro_rules! _impl_jmap_capability {
#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] #[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)]
pub struct $ident; pub struct $ident;
impl $crate::jmap::rfc8620::capabilities::Capability for $ident { impl $crate::jmap::capabilities::Capability for $ident {
const URI: &'static str = $key; const URI: &'static str = $key;
const NAME: &'static str = $name; const NAME: &'static str = $name;
} }
impl $ident { impl $ident {
pub const fn uri() -> &'static str { pub const fn uri() -> &'static str {
<Self as $crate::jmap::rfc8620::capabilities::Capability>::URI <Self as $crate::jmap::capabilities::Capability>::URI
} }
pub const fn name() -> &'static str { pub const fn name() -> &'static str {
<Self as $crate::jmap::rfc8620::capabilities::Capability>::NAME <Self as $crate::jmap::capabilities::Capability>::NAME
} }
} }
@ -65,7 +65,7 @@ macro_rules! _impl_jmap_capability {
where where
S: ::serde::ser::Serializer, S: ::serde::ser::Serializer,
{ {
serializer.serialize_str(<Self as $crate::jmap::rfc8620::capabilities::Capability>::URI) serializer.serialize_str(<Self as $crate::jmap::capabilities::Capability>::URI)
} }
} }
@ -74,7 +74,7 @@ macro_rules! _impl_jmap_capability {
where where
D: ::serde::de::Deserializer<'de>, D: ::serde::de::Deserializer<'de>,
{ {
if <&'_ str>::deserialize(deserializer)? == <Self as $crate::jmap::rfc8620::capabilities::Capability>::URI { if <&'_ str>::deserialize(deserializer)? == <Self as $crate::jmap::capabilities::Capability>::URI {
return Ok(Self); return Ok(Self);
} }

@ -32,18 +32,20 @@ use url::Url;
use crate::{ use crate::{
error::{Error, NetworkErrorKind, Result}, error::{Error, NetworkErrorKind, Result},
jmap::{ jmap::{
argument::Argument,
capabilities::*,
deserialize_from_str, deserialize_from_str,
email::{ email::{
EmailChanges, EmailFilterCondition, EmailGet, EmailObject, EmailQueryChanges, EmailChanges, EmailFilterCondition, EmailGet, EmailObject, EmailQueryChanges,
EmailQueryChangesResponse, EmailQueryChangesResponse,
}, },
filters::Filter,
identity::{IdentityGet, IdentityObject, IdentitySet}, identity::{IdentityGet, IdentityObject, IdentitySet},
mailbox::MailboxObject, mailbox::MailboxObject,
protocol::{self, JmapMailCapability, Request}, protocol::{self, JmapMailCapability, Request},
rfc8620::{ rfc8620::{
argument::Argument, capabilities::*, filters::Filter, AddedItem, Changes, AddedItem, Changes, ChangesResponse, Get, GetResponse, Id, MethodResponse,
ChangesResponse, Get, GetResponse, Id, MethodResponse, QueryChanges, QueryChanges, QueryChangesResponse, ResultField, Set, State,
QueryChangesResponse, ResultField, Set, State,
}, },
session::Session, session::Session,
JmapServerConf, Store, JmapServerConf, Store,

@ -30,12 +30,11 @@ use crate::{
email::address::{Address, MailboxAddress}, email::address::{Address, MailboxAddress},
jmap::{ jmap::{
deserialize_from_str, deserialize_from_str,
filters::{Filter, FilterCondition, FilterTrait},
mailbox::MailboxObject, mailbox::MailboxObject,
protocol::Method, protocol::Method,
rfc8620::{ rfc8620::{
bool_false, bool_false, u64_zero, BlobObject, Changes, Get, Id, Object, Query, QueryChanges,
filters::{Filter, FilterCondition, FilterTrait},
u64_zero, BlobObject, Changes, Get, Id, Object, Query, QueryChanges,
QueryChangesResponse, ResultField, Set, QueryChangesResponse, ResultField, Set,
}, },
thread::ThreadObject, thread::ThreadObject,

@ -90,20 +90,27 @@ use session::*;
pub mod rfc8620; pub mod rfc8620;
use rfc8620::{ use rfc8620::{
argument::Argument, capabilities::JmapCoreCapability, download_request_format, filters::Filter, download_request_format, upload_request_format, BlobObject, Get, GetResponse, Id,
upload_request_format, BlobObject, Get, GetResponse, Id, MethodResponse, Object, Query, MethodResponse, Object, Query, QueryResponse, Set, SetResponse, State, UploadResponse,
QueryResponse, Set, SetResponse, State, UploadResponse,
}; };
pub mod backend_mailbox; pub mod backend_mailbox;
use backend_mailbox::JmapMailbox; use backend_mailbox::JmapMailbox;
pub mod argument;
pub mod capabilities;
pub mod comparator;
pub mod email; pub mod email;
pub mod filters;
pub mod identity; pub mod identity;
pub mod mailbox; pub mod mailbox;
pub mod submission; pub mod submission;
pub mod thread; pub mod thread;
use argument::Argument;
use capabilities::JmapCoreCapability;
use filters::Filter;
#[cfg(test)] #[cfg(test)]
mod tests; mod tests;

@ -35,14 +35,14 @@ use crate::{
email::Envelope, email::Envelope,
error::Result, error::Result,
jmap::{ jmap::{
argument::Argument,
backend_mailbox::JmapMailbox, backend_mailbox::JmapMailbox,
capabilities::*,
deserialize_from_str, deserialize_from_str,
email::{EmailFilterCondition, EmailGet, EmailObject, EmailQuery}, email::{EmailFilterCondition, EmailGet, EmailObject, EmailQuery},
filters::Filter,
mailbox::{MailboxGet, MailboxObject}, mailbox::{MailboxGet, MailboxObject},
rfc8620::{ rfc8620::{Get, GetResponse, Id, MethodResponse, Object, Query, QueryResponse, State},
argument::Argument, capabilities::*, filters::Filter, Get, GetResponse, Id,
MethodResponse, Object, Query, QueryResponse, State,
},
JmapConnection, Store, JmapConnection, Store,
}, },
Flag, LazyCountSet, MailboxHash, Flag, LazyCountSet, MailboxHash,

@ -36,18 +36,12 @@ use url::Url;
use crate::{ use crate::{
email::parser::BytesExt, email::parser::BytesExt,
error::{Error, ErrorKind, Result}, 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; pub type PatchObject = Value;
impl Object for PatchObject { impl Object for PatchObject {

@ -24,10 +24,11 @@ use serde::ser::{Serialize, SerializeStruct, Serializer};
use serde_json::Value; use serde_json::Value;
use crate::jmap::{ use crate::jmap::{
argument::Argument,
email::EmailObject, email::EmailObject,
identity::IdentityObject, identity::IdentityObject,
protocol::Method, protocol::Method,
rfc8620::{argument::Argument, Account, BlobObject, Id, Object, PatchObject, Set}, rfc8620::{Account, BlobObject, Id, Object, PatchObject, Set},
thread::ThreadObject, thread::ThreadObject,
}; };

@ -28,8 +28,9 @@ fn test_jmap_query() {
use crate::jmap::{ use crate::jmap::{
email::{EmailFilterCondition, EmailObject, EmailQuery}, email::{EmailFilterCondition, EmailObject, EmailQuery},
filters::Filter,
protocol::Request, protocol::Request,
rfc8620::{filters::Filter, Query}, rfc8620::Query,
}; };
let q: crate::search::Query = crate::search::Query::try_from( let q: crate::search::Query = crate::search::Query::try_from(
"subject:wah or (from:Manos and (subject:foo or subject:bar))", "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 serde_json::json;
use crate::jmap::{ use crate::jmap::{
argument::Argument,
email::{EmailImport, EmailObject}, email::{EmailImport, EmailObject},
identity::IdentityObject, identity::IdentityObject,
rfc8620::{argument::Argument, Account, Id, ResultField}, rfc8620::{Account, Id, ResultField},
submission::{EmailSubmissionObject, UndoStatus}, submission::{EmailSubmissionObject, UndoStatus},
}; };
let account_id: Id<Account> = "blahblah".into(); let account_id: Id<Account> = "blahblah".into();
@ -279,10 +281,11 @@ fn test_jmap_argument_serde() {
use serde_json::json; use serde_json::json;
use crate::jmap::{ use crate::jmap::{
argument::Argument,
email::{EmailImport, EmailImportObject, EmailObject}, email::{EmailImport, EmailImportObject, EmailObject},
mailbox::MailboxObject, mailbox::MailboxObject,
protocol::Request, protocol::Request,
rfc8620::{argument::Argument, BlobObject, Id, ResultField, Set}, rfc8620::{BlobObject, Id, ResultField, Set},
submission::{EmailSubmissionObject, EmailSubmissionSet}, submission::{EmailSubmissionObject, EmailSubmissionSet},
}; };

Loading…
Cancel
Save