Zero-copy deserialization of Sieve scripts and reports + Bump multiple dependencies to their latest versions

This commit is contained in:
mdecimus
2025-05-11 16:56:55 +02:00
parent 095c501a66
commit 7ec5701af8
112 changed files with 1109 additions and 1816 deletions

View File

@@ -14,7 +14,7 @@ common = { path = "../common" }
email = { path = "../email" }
nlp = { path = "../nlp" }
utils = { path = "../utils" }
mail-parser = { version = "0.10", features = ["full_encoding"] }
mail-parser = { version = "0.11", features = ["full_encoding"] }
mail-send = { version = "0.5", default-features = false, features = ["cram-md5", "ring", "tls12"] }
rustls = { version = "0.23.5", default-features = false, features = ["std", "ring", "tls12"] }
rustls-pemfile = "2.0"

View File

@@ -15,7 +15,6 @@ use directory::Permission;
use email::{
cache::{MessageCacheFetch, email::MessageCacheAccess},
message::metadata::{
ArchivedAddress, ArchivedGetHeader, ArchivedHeaderName, ArchivedHeaderValue,
ArchivedMessageMetadata, ArchivedMessageMetadataContents, ArchivedMetadataPartType,
DecodedParts, MessageData, MessageMetadata,
},
@@ -40,6 +39,9 @@ use jmap_proto::types::{
keyword::Keyword,
property::Property,
};
use mail_parser::{
ArchivedAddress, ArchivedHeaderName, ArchivedHeaderValue, core::rkyv::ArchivedGetHeader,
};
use std::{borrow::Cow, sync::Arc, time::Instant};
use store::{
query::log::{Change, Query},
@@ -663,7 +665,7 @@ impl AsImapDataItemPart for ArchivedMessageMetadataContents {
fields.body_parameters = content_type.as_ref().and_then(|ct| {
ct.attributes.as_ref().map(|at| {
at.iter()
.map(|k| (k.0.as_ref().into(), k.1.as_ref().into()))
.map(|k| (k.name.as_ref().into(), k.value.as_ref().into()))
.collect::<Vec<_>>()
})
})
@@ -722,7 +724,7 @@ impl AsImapDataItemPart for ArchivedMessageMetadataContents {
.as_ref()
.map(|at| {
at.iter()
.map(|k| (k.0.as_ref().into(), k.1.as_ref().into()))
.map(|k| (k.name.as_ref().into(), k.value.as_ref().into()))
.collect::<Vec<_>>()
})
.unwrap_or_default(),
@@ -1197,7 +1199,7 @@ trait AsImapAddress {
fn as_imap_address(&self) -> Vec<fetch::Address>;
}
impl AsImapAddress for ArchivedHeaderValue {
impl AsImapAddress for ArchivedHeaderValue<'_> {
fn as_imap_address(&self) -> Vec<fetch::Address> {
let mut addresses = Vec::new();