Skip to main content

SqliteTransport

Trait SqliteTransport 

Source
pub trait SqliteTransport: Send + Sync {
    // Required methods
    fn get_pages<'life0, 'async_trait>(
        &'life0 self,
        request: SqliteGetPagesRequest,
    ) -> Pin<Box<dyn Future<Output = Result<SqliteGetPagesResponse>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn commit<'life0, 'async_trait>(
        &'life0 self,
        request: SqliteCommitRequest,
    ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitResponse>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn commit_stage_begin<'life0, 'async_trait>(
        &'life0 self,
        request: SqliteCommitStageBeginRequest,
    ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitStageBeginResponse>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn commit_stage_segment<'life0, 'async_trait>(
        &'life0 self,
        request: SqliteCommitStageSegmentRequest,
    ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitStageSegmentResponse>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn commit_finalize<'life0, 'async_trait>(
        &'life0 self,
        request: SqliteCommitFinalizeRequest,
    ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitFinalizeResponse>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}

Required Methods§

Source

fn get_pages<'life0, 'async_trait>( &'life0 self, request: SqliteGetPagesRequest, ) -> Pin<Box<dyn Future<Output = Result<SqliteGetPagesResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn commit<'life0, 'async_trait>( &'life0 self, request: SqliteCommitRequest, ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn commit_stage_begin<'life0, 'async_trait>( &'life0 self, request: SqliteCommitStageBeginRequest, ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitStageBeginResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Opens a staged commit, for a commit too large to send in one message.

Required rather than defaulted. A default made staging look optional, and the transport that runs depot vacuum in-process silently took it: every commit above the single-shot threshold failed there, which is exactly the commit shape a vacuum produces. A transport that genuinely cannot stage has to say so in its own body.

Source

fn commit_stage_segment<'life0, 'async_trait>( &'life0 self, request: SqliteCommitStageSegmentRequest, ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitStageSegmentResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Stages one shard-aligned segment of an open staged commit.

Source

fn commit_finalize<'life0, 'async_trait>( &'life0 self, request: SqliteCommitFinalizeRequest, ) -> Pin<Box<dyn Future<Output = Result<SqliteCommitFinalizeResponse>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Publishes an open staged commit, making every staged segment visible at once.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§