Import upstream v0.16.22, stripped

Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f
Enterprise-only files removed or emptied: 63
Enterprise-only snippets removed: 117 in 50 files
Dangling module declarations removed: 5
Cargo edits turning enterprise off: 14
Verification: clean
Enterprise feature gates left for rebuilt features: 19 in 18 files

Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
This commit is contained in:
2026-09-18 10:21:56 -07:00
commit 7dae9b29fd
1650 changed files with 485521 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use super::{ArchivedEmailSubmission, EmailSubmission};
use common::storage::index::{IndexValue, IndexableAndSerializableObject, IndexableObject};
use store::{
U32_LEN, U64_LEN,
write::{IndexPropertyClass, ValueClass, key::KeySerializer},
};
use types::{collection::SyncCollection, field::EmailSubmissionField};
impl IndexableObject for EmailSubmission {
fn index_values(&self) -> impl Iterator<Item = IndexValue<'_>> {
[
IndexValue::Property {
field: ValueClass::IndexProperty(IndexPropertyClass::Integer {
property: EmailSubmissionField::Metadata.into(),
value: self.send_at,
}),
value: KeySerializer::new(U32_LEN * 3 + U64_LEN + 1)
.write(self.email_id)
.write(self.thread_id)
.write(self.identity_id)
.write(self.queue_id.unwrap_or_default())
.write(self.undo_status.as_index())
.finalize()
.into(),
},
IndexValue::LogItem {
sync_collection: SyncCollection::EmailSubmission,
prefix: None,
},
]
.into_iter()
}
}
impl IndexableObject for &ArchivedEmailSubmission {
fn index_values(&self) -> impl Iterator<Item = IndexValue<'_>> {
[
IndexValue::Property {
field: ValueClass::IndexProperty(IndexPropertyClass::Integer {
property: EmailSubmissionField::Metadata.into(),
value: self.send_at.to_native(),
}),
value: KeySerializer::new(U32_LEN * 3 + U64_LEN + 1)
.write(self.email_id.to_native())
.write(self.thread_id.to_native())
.write(self.identity_id.to_native())
.write(self.queue_id.as_ref().map(u64::from).unwrap_or_default())
.write(self.undo_status.as_index())
.finalize()
.into(),
},
IndexValue::LogItem {
sync_collection: SyncCollection::EmailSubmission,
prefix: None,
},
]
.into_iter()
}
}
impl IndexableAndSerializableObject for EmailSubmission {
fn is_versioned() -> bool {
false
}
}