pub trait ModuleOperationStore:
Debug
+ Send
+ Sync {
// Required methods
fn create_idempotent(
&self,
operation: &ModuleOperation,
initial_event: &ModuleOperationJournalEvent,
) -> Result<CreateOperationResult, ModuleOperationStoreError>;
fn load(
&self,
operation_id: &str,
) -> Result<ModuleOperation, ModuleOperationStoreError>;
fn journal(
&self,
operation_id: &str,
) -> Result<ModuleOperationJournal, ModuleOperationStoreError>;
fn compare_and_append(
&self,
expected_revision: u64,
event: &ModuleOperationJournalEvent,
) -> Result<(), ModuleOperationStoreError>;
fn find_by_idempotency_key(
&self,
application_id: &str,
idempotency_key: &str,
) -> Result<Option<ModuleOperation>, ModuleOperationStoreError>;
fn load_lease(
&self,
) -> Result<Option<ModuleOperationLease>, ModuleOperationStoreError>;
fn compare_and_set_lease(
&self,
expected_revision: Option<u64>,
lease: Option<&ModuleOperationLease>,
) -> Result<(), ModuleOperationStoreError>;
}Required Methods§
fn create_idempotent( &self, operation: &ModuleOperation, initial_event: &ModuleOperationJournalEvent, ) -> Result<CreateOperationResult, ModuleOperationStoreError>
fn load( &self, operation_id: &str, ) -> Result<ModuleOperation, ModuleOperationStoreError>
fn journal( &self, operation_id: &str, ) -> Result<ModuleOperationJournal, ModuleOperationStoreError>
fn compare_and_append( &self, expected_revision: u64, event: &ModuleOperationJournalEvent, ) -> Result<(), ModuleOperationStoreError>
fn find_by_idempotency_key( &self, application_id: &str, idempotency_key: &str, ) -> Result<Option<ModuleOperation>, ModuleOperationStoreError>
fn load_lease( &self, ) -> Result<Option<ModuleOperationLease>, ModuleOperationStoreError>
fn compare_and_set_lease( &self, expected_revision: Option<u64>, lease: Option<&ModuleOperationLease>, ) -> Result<(), ModuleOperationStoreError>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".