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
+67
View File
@@ -0,0 +1,67 @@
/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
use super::SieveScript;
use common::{Server, auth::AccessToken, storage::index::ObjectIndexBuilder};
use store::write::BatchBuilder;
use store::{
ValueKey,
write::{AlignedBytes, Archive},
};
use trc::AddContext;
use types::{collection::Collection, field::SieveField};
pub trait SieveScriptDelete: Sync + Send {
fn sieve_script_delete(
&self,
account_id: u32,
document_id: u32,
access_token: &AccessToken,
batch: &mut BatchBuilder,
) -> impl Future<Output = trc::Result<bool>> + Send;
}
impl SieveScriptDelete for Server {
async fn sieve_script_delete(
&self,
account_id: u32,
document_id: u32,
access_token: &AccessToken,
batch: &mut BatchBuilder,
) -> trc::Result<bool> {
// Fetch record
if let Some(obj_) = self
.store()
.get_value::<Archive<AlignedBytes>>(ValueKey::archive(
account_id,
Collection::SieveScript,
document_id,
))
.await?
{
// Delete record
batch
.with_account_id(account_id)
.with_collection(Collection::SieveScript)
.with_document(document_id)
.clear(SieveField::Ids)
.custom(
ObjectIndexBuilder::<_, ()>::new()
.with_current(
obj_.to_unarchived::<SieveScript>()
.caused_by(trc::location!())?,
)
.with_changed_by(access_token.account_tenant_ids()),
)
.caused_by(trc::location!())?
.commit_point();
Ok(true)
} else {
Ok(false)
}
}
}