pub trait RefRows: Send + Sync {
// Required method
fn snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RefRowsSnapshot, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
The refs rows’ read seam — the durable state the closure walks and
fingerprints. Implemented by the refs tables
(crate::refs::InMemoryRefTable, the sqlite twin) and
forwarded by the composition’s write-counting wrapper
(crate::refs::VersionedRefTable). Engine twins carry their
own: snapshotting is a plain ordered read of the rows the CAS
writes.
Required Methods§
Sourcefn snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RefRowsSnapshot, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RefRowsSnapshot, StorageError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
The full canonical snapshot: all repos’ rows, name-sorted, with the fingerprint over the canonical form.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl RefRows for InMemoryRefTable
impl RefRows for SqliteRefTable
The liveness seam’s row read: one ordered query over the
co-tenant rows (ORDER BY repo_id, name — the canonical
order the fingerprint folds), bridged off the executor like
every blocking-SQL leg.