Skip to main content

coven_database/store/
publication_state.rs

1use crate::{
2    DurablePreparedProtocolObject, PreparedAudienceObjects, StoreBatchCompletion,
3    StoreBatchLocalCleanup,
4};
5use coven_protocol::objects::PreparedProtocolObject;
6use coven_protocol::store_commit::{StoreRootRef, VerifiedStoreBatchCommit};
7use coven_protocol::write::WriteId;
8
9pub struct StoreWritePreparation {
10    pub root: StoreRootRef,
11    pub write_id: WriteId,
12    pub remote_objects: Vec<coven_protocol::remote_object::ClosedRemoteObject>,
13    pub audiences: PreparedAudienceObjects,
14    pub commit: PreparedProtocolObject<VerifiedStoreBatchCommit>,
15    pub publication: coven_protocol::prepared_commit::PreparedStorePublication,
16    pub history_evidence: coven_protocol::store_commit::RetainedMergeCommitEvidence,
17    pub local_cleanup: StoreBatchLocalCleanup,
18    pub completion: StoreBatchCompletion,
19}
20
21pub type StorePublicationPreparation = coven_protocol::prepared_commit::PreparedStorePublication;
22
23#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
24#[serde(deny_unknown_fields)]
25pub(super) struct PreparedStoreWriteState {
26    pub commit: DurablePreparedProtocolObject,
27    pub history_evidence: coven_protocol::store_commit::RetainedMergeCommitEvidence,
28    pub local_cleanup: StoreBatchLocalCleanup,
29    pub completion: StoreBatchCompletion,
30}