Skip to main content

AsyncFileSystemSpi

Trait AsyncFileSystemSpi 

Source
pub trait AsyncFileSystemSpi: Send + Sync {
    // Required methods
    fn properties(&self) -> ProviderProperties;
    fn stat<'a>(
        &'a self,
        request: StatRequest<'a>,
    ) -> SpiFuture<'a, FsResult<StatResponse>>;

    // Provided methods
    fn list<'a>(
        &'a self,
        request: ListRequest<'a>,
    ) -> SpiFuture<'a, FsResult<OpenedAsyncDirectoryStream>> { ... }
    fn open_reader<'a>(
        &'a self,
        request: OpenReaderRequest<'a>,
    ) -> SpiFuture<'a, FsResult<OpenedAsyncReader>> { ... }
    fn open_writer<'a>(
        &'a self,
        request: OpenWriterRequest<'a>,
    ) -> SpiFuture<'a, FsResult<OpenedAsyncWriter>> { ... }
    fn create_directory<'a>(
        &'a self,
        request: CreateDirectoryRequest<'a>,
    ) -> SpiFuture<'a, FsResult<CreateDirectoryOutcome>> { ... }
    fn delete_file<'a>(
        &'a self,
        request: DeleteFileRequest<'a>,
    ) -> SpiFuture<'a, FsResult<DeleteOutcome>> { ... }
    fn delete_directory<'a>(
        &'a self,
        request: DeleteDirectoryRequest<'a>,
    ) -> SpiFuture<'a, FsResult<DeleteOutcome>> { ... }
    fn try_copy<'a>(
        &'a self,
        _request: CopyRequest<'a>,
    ) -> SpiFuture<'a, Result<CopyAttempt, SpiCopyFailure>> { ... }
    fn rename<'a>(
        &'a self,
        request: RenameRequest<'a>,
    ) -> SpiFuture<'a, Result<RenameOutcome, SpiRenameFailure>> { ... }
    fn create_temp_file<'a>(
        &'a self,
        _request: CreateTempFileRequest,
    ) -> SpiFuture<'a, FsResult<OpenedAsyncTempFile>> { ... }
    fn create_temp_directory<'a>(
        &'a self,
        _request: CreateTempDirectoryRequest,
    ) -> SpiFuture<'a, FsResult<OpenedAsyncTempDirectory>> { ... }
}
Expand description

Object-safe asynchronous provider implementation contract.

Operation futures perform provider I/O only while polled. Dropping a pending future cancels local polling but does not imply that remote work was rolled back; mutation failures must preserve confirmed progress in their typed failure state.

§Examples

use qubit_fs::spi::AsyncFileSystemSpi;

fn accepts_provider<T: AsyncFileSystemSpi>() {}

Required Methods§

Source

fn properties(&self) -> ProviderProperties

Returns one immutable provider property snapshot without asynchronous I/O.

§Returns

The provider’s immutable property snapshot.

Source

fn stat<'a>( &'a self, request: StatRequest<'a>, ) -> SpiFuture<'a, FsResult<StatResponse>>

Asynchronously reads metadata for a validated request.

§Parameters
  • request: Facade-validated stat request.
§Returns

A future resolving to path-bound metadata.

§Errors

Resolves to the provider lookup failure with filesystem context.

Provided Methods§

Source

fn list<'a>( &'a self, request: ListRequest<'a>, ) -> SpiFuture<'a, FsResult<OpenedAsyncDirectoryStream>>

Asynchronously opens a directory stream.

§Parameters
  • request: Facade-validated list request.
§Returns

A future resolving to an opened enumeration session.

§Errors

Resolves to the provider open failure with filesystem context.

Source

fn open_reader<'a>( &'a self, request: OpenReaderRequest<'a>, ) -> SpiFuture<'a, FsResult<OpenedAsyncReader>>

Asynchronously opens a reader.

§Parameters
  • request: Facade-validated reader request.
§Returns

A future resolving to an identity-bound reader.

§Errors

Resolves to the provider open failure with filesystem context.

Source

fn open_writer<'a>( &'a self, request: OpenWriterRequest<'a>, ) -> SpiFuture<'a, FsResult<OpenedAsyncWriter>>

Asynchronously opens a writer.

An unsuccessful open must describe its external effects. Attach FsEffectState::Unchanged only when no mutation occurred and no cleanup responsibility remains. Missing evidence is conservatively indeterminate in aggregate operations, including an AlreadyExists skip request.

§Parameters
  • request: Facade-validated writer request.
§Returns

A future resolving to an identity-bound writer.

§Errors

Resolves to the provider open failure with filesystem context.

Source

fn create_directory<'a>( &'a self, request: CreateDirectoryRequest<'a>, ) -> SpiFuture<'a, FsResult<CreateDirectoryOutcome>>

Asynchronously creates a directory.

§Parameters
  • request: Facade-validated directory-creation request.
§Returns

A future resolving to the confirmed creation outcome.

§Errors

Resolves to the provider creation failure with filesystem context.

Source

fn delete_file<'a>( &'a self, request: DeleteFileRequest<'a>, ) -> SpiFuture<'a, FsResult<DeleteOutcome>>

Asynchronously deletes a file.

§Parameters
  • request: Facade-validated file-deletion request.
§Returns

A future resolving to the confirmed deletion outcome.

§Errors

Resolves to the provider deletion failure with filesystem context.

Source

fn delete_directory<'a>( &'a self, request: DeleteDirectoryRequest<'a>, ) -> SpiFuture<'a, FsResult<DeleteOutcome>>

Asynchronously deletes a directory.

§Parameters
  • request: Facade-validated directory-deletion request.
§Returns

A future resolving to the confirmed deletion outcome.

§Errors

Resolves to the provider deletion failure with filesystem context.

Source

fn try_copy<'a>( &'a self, _request: CopyRequest<'a>, ) -> SpiFuture<'a, Result<CopyAttempt, SpiCopyFailure>>

Attempts an optional native asynchronous copy primitive.

§Parameters
  • _request: Facade-validated copy request.
§Returns

A future resolving to a completed outcome or a typed decline reason.

§Errors

Resolves to a typed failure preserving confirmed publication progress.

Source

fn rename<'a>( &'a self, request: RenameRequest<'a>, ) -> SpiFuture<'a, Result<RenameOutcome, SpiRenameFailure>>

Asynchronously renames a resource.

§Parameters
  • request: Facade-validated rename request.
§Returns

A future resolving to the confirmed rename outcome.

§Errors

Resolves to a typed failure preserving confirmed rename progress.

Source

fn create_temp_file<'a>( &'a self, _request: CreateTempFileRequest, ) -> SpiFuture<'a, FsResult<OpenedAsyncTempFile>>

Asynchronously creates a temporary file.

§Parameters
  • request: Validated temporary-file creation request.
§Returns

A future resolving to an identity-bound temporary-file session.

§Errors

Resolves to the provider creation failure with filesystem context.

Source

fn create_temp_directory<'a>( &'a self, _request: CreateTempDirectoryRequest, ) -> SpiFuture<'a, FsResult<OpenedAsyncTempDirectory>>

Asynchronously creates a temporary directory.

§Parameters
  • request: Validated temporary-directory creation request.
§Returns

A future resolving to an identity-bound temporary-directory session.

§Errors

Resolves to the provider creation failure with filesystem context.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§