Skip to main content

FileSystemSpi

Trait FileSystemSpi 

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

    // Provided methods
    fn list(&self, request: ListRequest<'_>) -> FsResult<OpenedDirectoryStream> { ... }
    fn open_reader(
        &self,
        request: OpenReaderRequest<'_>,
    ) -> FsResult<OpenedReader> { ... }
    fn open_writer(
        &self,
        request: OpenWriterRequest<'_>,
    ) -> FsResult<OpenedWriter> { ... }
    fn create_directory(
        &self,
        request: CreateDirectoryRequest<'_>,
    ) -> FsResult<CreateDirectoryOutcome> { ... }
    fn delete_file(
        &self,
        request: DeleteFileRequest<'_>,
    ) -> FsResult<DeleteOutcome> { ... }
    fn delete_directory(
        &self,
        request: DeleteDirectoryRequest<'_>,
    ) -> FsResult<DeleteOutcome> { ... }
    fn try_copy(
        &self,
        _request: CopyRequest<'_>,
    ) -> Result<CopyAttempt, SpiCopyFailure> { ... }
    fn rename(
        &self,
        request: RenameRequest<'_>,
    ) -> Result<RenameOutcome, SpiRenameFailure> { ... }
    fn create_temp_file(
        &self,
        _request: CreateTempFileRequest,
    ) -> FsResult<OpenedTempFile> { ... }
    fn create_temp_directory(
        &self,
        _request: CreateTempDirectoryRequest,
    ) -> FsResult<OpenedTempDirectory> { ... }
}
Expand description

Synchronous provider implementation contract.

§Examples

use qubit_fs::spi::FileSystemSpi;

fn accepts_provider<T: FileSystemSpi>() {}

Required Methods§

Source

fn properties(&self) -> ProviderProperties

Returns one immutable property snapshot.

§Returns

The provider’s immutable property snapshot.

Source

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

Reads metadata for a validated request.

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

Path-bound provider metadata.

§Errors

Returns the provider lookup failure with filesystem context.

Provided Methods§

Source

fn list(&self, request: ListRequest<'_>) -> FsResult<OpenedDirectoryStream>

Opens a directory stream.

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

An opened provider enumeration session.

§Errors

Returns the provider open failure with filesystem context.

Source

fn open_reader(&self, request: OpenReaderRequest<'_>) -> FsResult<OpenedReader>

Opens a reader.

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

An identity-bound provider reader.

§Errors

Returns the provider open failure with filesystem context.

Source

fn open_writer(&self, request: OpenWriterRequest<'_>) -> FsResult<OpenedWriter>

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

An identity-bound provider writer.

§Errors

Returns the provider open failure with filesystem context.

Source

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

Creates a directory.

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

The confirmed creation outcome.

§Errors

Returns the provider creation failure with filesystem context.

Source

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

Deletes a file.

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

The confirmed deletion outcome.

§Errors

Returns the provider deletion failure with filesystem context.

Source

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

Deletes a directory.

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

The confirmed deletion outcome.

§Errors

Returns the provider deletion failure with filesystem context.

Source

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

Attempts an optional provider copy primitive.

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

A completed outcome or a typed decline reason.

§Errors

Returns a typed failure preserving confirmed publication progress.

Source

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

Renames a resource.

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

The confirmed rename outcome.

§Errors

Returns a typed failure preserving confirmed rename progress.

Source

fn create_temp_file( &self, _request: CreateTempFileRequest, ) -> FsResult<OpenedTempFile>

Creates a temporary file.

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

An identity-bound temporary-file session.

§Errors

Returns the provider creation failure with filesystem context.

Source

fn create_temp_directory( &self, _request: CreateTempDirectoryRequest, ) -> FsResult<OpenedTempDirectory>

Creates a temporary directory.

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

An identity-bound temporary-directory session.

§Errors

Returns 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§