pub trait WorkspaceAdvancedRepository:
Send
+ Sync
+ Debug {
Show 17 methods
// Required methods
fn put_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
value: &'life1 UploadSession,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<UploadSession>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn advance_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
expected_offset: u64,
expected_version: u64,
new_offset: u64,
state: UploadState,
) -> Pin<Box<dyn Future<Output = Result<UploadSession>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn put_command<'life0, 'life1, 'async_trait>(
&'life0 self,
value: &'life1 CommandResource,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn put_command_operation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
command: &'life1 CommandResource,
operation: &'life2 WorkspaceOperation,
payload_json: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn get_command<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<CommandResource>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn transition_command<'life0, 'async_trait>(
&'life0 self,
request: CommandTransition,
) -> Pin<Box<dyn Future<Output = Result<CommandResource>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn append_output<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
command_id: &'life2 str,
chunks: &'life3 [OutputChunk],
truncated: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn output_page<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
command_id: &'life2 str,
after: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<OutputPage>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn put_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
value: &'life1 Snapshot,
legacy_blob: Option<&'life2 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredSnapshot>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn list_expired_snapshots<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
now_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Snapshot>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_expired_snapshot_manifest<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
expected_expires_at_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn list_expired_previews<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
workspace_id: &'life2 str,
now_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<StoredPreview>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn reconcile_expired<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
now_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn keep_alive_workspace<'life0, 'async_trait>(
&'life0 self,
request: WorkspaceLeaseKeepAlive,
) -> Pin<Box<dyn Future<Output = Result<WorkspaceLease>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn record_snapshot_cleanup_failure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
now_ms: u64,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait { ... }
}Required Methods§
fn put_upload<'life0, 'life1, 'async_trait>(
&'life0 self,
value: &'life1 UploadSession,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<UploadSession>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn advance_upload<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
expected_offset: u64,
expected_version: u64,
new_offset: u64,
state: UploadState,
) -> Pin<Box<dyn Future<Output = Result<UploadSession>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_command<'life0, 'life1, 'async_trait>(
&'life0 self,
value: &'life1 CommandResource,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_command_operation<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
command: &'life1 CommandResource,
operation: &'life2 WorkspaceOperation,
payload_json: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get_command<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<CommandResource>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn transition_command<'life0, 'async_trait>(
&'life0 self,
request: CommandTransition,
) -> Pin<Box<dyn Future<Output = Result<CommandResource>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn append_output<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
command_id: &'life2 str,
chunks: &'life3 [OutputChunk],
truncated: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn output_page<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
command_id: &'life2 str,
after: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<OutputPage>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn put_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
value: &'life1 Snapshot,
legacy_blob: Option<&'life2 [u8]>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_snapshot<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<StoredSnapshot>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_expired_snapshots<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
now_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Snapshot>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_expired_snapshot_manifest<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
expected_expires_at_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn list_expired_previews<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
workspace_id: &'life2 str,
now_ms: u64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<StoredPreview>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn reconcile_expired<'life0, 'life1, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
now_ms: u64,
) -> Pin<Box<dyn Future<Output = Result<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn keep_alive_workspace<'life0, 'async_trait>(
&'life0 self,
request: WorkspaceLeaseKeepAlive,
) -> Pin<Box<dyn Future<Output = Result<WorkspaceLease>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Provided Methods§
Sourcefn record_snapshot_cleanup_failure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
now_ms: u64,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn record_snapshot_cleanup_failure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
tenant_id: &'life1 str,
id: &'life2 str,
now_ms: u64,
error: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Persist a failed object deletion so poison objects back off and cannot occupy every slot in subsequent bounded retention batches.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".