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§
Sourcefn properties(&self) -> ProviderProperties
fn properties(&self) -> ProviderProperties
Sourcefn stat(&self, request: StatRequest<'_>) -> FsResult<StatResponse>
fn stat(&self, request: StatRequest<'_>) -> FsResult<StatResponse>
Provided Methods§
Sourcefn list(&self, request: ListRequest<'_>) -> FsResult<OpenedDirectoryStream>
fn list(&self, request: ListRequest<'_>) -> FsResult<OpenedDirectoryStream>
Sourcefn open_reader(&self, request: OpenReaderRequest<'_>) -> FsResult<OpenedReader>
fn open_reader(&self, request: OpenReaderRequest<'_>) -> FsResult<OpenedReader>
Sourcefn open_writer(&self, request: OpenWriterRequest<'_>) -> FsResult<OpenedWriter>
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.
Sourcefn create_directory(
&self,
request: CreateDirectoryRequest<'_>,
) -> FsResult<CreateDirectoryOutcome>
fn create_directory( &self, request: CreateDirectoryRequest<'_>, ) -> FsResult<CreateDirectoryOutcome>
Sourcefn delete_file(&self, request: DeleteFileRequest<'_>) -> FsResult<DeleteOutcome>
fn delete_file(&self, request: DeleteFileRequest<'_>) -> FsResult<DeleteOutcome>
Sourcefn delete_directory(
&self,
request: DeleteDirectoryRequest<'_>,
) -> FsResult<DeleteOutcome>
fn delete_directory( &self, request: DeleteDirectoryRequest<'_>, ) -> FsResult<DeleteOutcome>
Sourcefn try_copy(
&self,
_request: CopyRequest<'_>,
) -> Result<CopyAttempt, SpiCopyFailure>
fn try_copy( &self, _request: CopyRequest<'_>, ) -> Result<CopyAttempt, SpiCopyFailure>
Sourcefn rename(
&self,
request: RenameRequest<'_>,
) -> Result<RenameOutcome, SpiRenameFailure>
fn rename( &self, request: RenameRequest<'_>, ) -> Result<RenameOutcome, SpiRenameFailure>
Sourcefn create_temp_file(
&self,
_request: CreateTempFileRequest,
) -> FsResult<OpenedTempFile>
fn create_temp_file( &self, _request: CreateTempFileRequest, ) -> FsResult<OpenedTempFile>
Sourcefn create_temp_directory(
&self,
_request: CreateTempDirectoryRequest,
) -> FsResult<OpenedTempDirectory>
fn create_temp_directory( &self, _request: CreateTempDirectoryRequest, ) -> FsResult<OpenedTempDirectory>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".