pub struct Capability {Show 52 fields
pub stat: bool,
pub stat_with_if_match: bool,
pub stat_with_if_none_match: bool,
pub stat_with_if_modified_since: bool,
pub stat_with_if_unmodified_since: bool,
pub stat_with_override_cache_control: bool,
pub stat_with_override_content_disposition: bool,
pub stat_with_override_content_type: bool,
pub stat_with_version: bool,
pub read: bool,
pub read_with_if_match: bool,
pub read_with_if_none_match: bool,
pub read_with_if_modified_since: bool,
pub read_with_if_unmodified_since: bool,
pub read_with_override_cache_control: bool,
pub read_with_override_content_disposition: bool,
pub read_with_override_content_type: bool,
pub read_with_version: bool,
pub write: bool,
pub write_can_multi: bool,
pub write_can_empty: bool,
pub write_can_append: bool,
pub write_with_content_type: bool,
pub write_with_content_disposition: bool,
pub write_with_content_encoding: bool,
pub write_with_cache_control: bool,
pub write_with_if_match: bool,
pub write_with_if_none_match: bool,
pub write_with_if_not_exists: bool,
pub write_with_user_metadata: bool,
pub write_multi_max_size: Option<usize>,
pub write_multi_min_size: Option<usize>,
pub write_total_max_size: Option<usize>,
pub create_dir: bool,
pub delete: bool,
pub delete_with_version: bool,
pub delete_max_size: Option<usize>,
pub copy: bool,
pub rename: bool,
pub list: bool,
pub list_with_limit: bool,
pub list_with_start_after: bool,
pub list_with_recursive: bool,
pub list_with_version: bool,
pub list_with_versions: bool,
pub list_with_deleted: bool,
pub presign: bool,
pub presign_read: bool,
pub presign_stat: bool,
pub presign_write: bool,
pub presign_delete: bool,
pub shared: bool,
}
Expand description
Capability defines the supported operations and their constraints for a storage Operator.
§Overview
This structure provides a comprehensive description of an Operator’s capabilities, including:
- Basic operations support (read, write, delete, etc.)
- Advanced operation variants (conditional operations, metadata handling)
- Operational constraints (size limits, batch limitations)
§Capability Types
Every operator maintains two capability sets:
-
OperatorInfo::native_capability
: Represents operations natively supported by the storage backend. -
OperatorInfo::full_capability
: Represents all available operations, including those implemented through alternative mechanisms.
§Implementation Details
Some operations might be available even when not natively supported by the backend. For example:
- Blocking operations are provided through the BlockingLayer
Developers should:
- Use
full_capability
to determine available operations - Use
native_capability
to identify optimized operations
§Field Naming Conventions
Fields follow these naming patterns:
- Basic operations: Simple lowercase (e.g.,
read
,write
) - Compound operations: Underscore-separated (e.g.,
presign_read
) - Variants: Capability description (e.g.,
write_can_empty
) - Parameterized operations: With-style (e.g.,
read_with_if_match
) - Limitations: Constraint description (e.g.,
write_multi_max_size
) - Metadata Results: Returning metadata capabilities (e.g.,
stat_has_content_length
)
All capability fields are public and can be accessed directly.
Fields§
§stat: bool
Indicates if the operator supports metadata retrieval operations.
stat_with_if_match: bool
Indicates if conditional stat operations using If-Match are supported.
stat_with_if_none_match: bool
Indicates if conditional stat operations using If-None-Match are supported.
stat_with_if_modified_since: bool
Indicates if conditional stat operations using If-Modified-Since are supported.
stat_with_if_unmodified_since: bool
Indicates if conditional stat operations using If-Unmodified-Since are supported.
stat_with_override_cache_control: bool
Indicates if Cache-Control header override is supported during stat operations.
stat_with_override_content_disposition: bool
Indicates if Content-Disposition header override is supported during stat operations.
stat_with_override_content_type: bool
Indicates if Content-Type header override is supported during stat operations.
stat_with_version: bool
Indicates if versions stat operations are supported.
read: bool
Indicates if the operator supports read operations.
read_with_if_match: bool
Indicates if conditional read operations using If-Match are supported.
read_with_if_none_match: bool
Indicates if conditional read operations using If-None-Match are supported.
read_with_if_modified_since: bool
Indicates if conditional read operations using If-Modified-Since are supported.
read_with_if_unmodified_since: bool
Indicates if conditional read operations using If-Unmodified-Since are supported.
read_with_override_cache_control: bool
Indicates if Cache-Control header override is supported during read operations.
read_with_override_content_disposition: bool
Indicates if Content-Disposition header override is supported during read operations.
read_with_override_content_type: bool
Indicates if Content-Type header override is supported during read operations.
read_with_version: bool
Indicates if versions read operations are supported.
write: bool
Indicates if the operator supports write operations.
write_can_multi: bool
Indicates if multiple write operations can be performed on the same object.
write_can_empty: bool
Indicates if writing empty content is supported.
write_can_append: bool
Indicates if append operations are supported.
write_with_content_type: bool
Indicates if Content-Type can be specified during write operations.
write_with_content_disposition: bool
Indicates if Content-Disposition can be specified during write operations.
write_with_content_encoding: bool
Indicates if Content-Encoding can be specified during write operations.
write_with_cache_control: bool
Indicates if Cache-Control can be specified during write operations.
write_with_if_match: bool
Indicates if conditional write operations using If-Match are supported.
write_with_if_none_match: bool
Indicates if conditional write operations using If-None-Match are supported.
write_with_if_not_exists: bool
Indicates if write operations can be conditional on object non-existence.
write_with_user_metadata: bool
Indicates if custom user metadata can be attached during write operations.
write_multi_max_size: Option<usize>
Maximum size supported for multipart uploads. For example, AWS S3 supports up to 5GiB per part in multipart uploads.
write_multi_min_size: Option<usize>
Minimum size required for multipart uploads (except for the last part). For example, AWS S3 requires at least 5MiB per part.
write_total_max_size: Option<usize>
Maximum total size supported for write operations. For example, Cloudflare D1 has a 1MB total size limit.
create_dir: bool
Indicates if directory creation is supported.
delete: bool
Indicates if delete operations are supported.
delete_with_version: bool
Indicates if versions delete operations are supported.
delete_max_size: Option<usize>
Maximum size supported for single delete operations.
copy: bool
Indicates if copy operations are supported.
rename: bool
Indicates if rename operations are supported.
list: bool
Indicates if list operations are supported.
list_with_limit: bool
Indicates if list operations support result limiting.
list_with_start_after: bool
Indicates if list operations support continuation from a specific point.
list_with_recursive: bool
Indicates if recursive listing is supported.
list_with_version: bool
Indicates if versions listing is supported.
list_with_versions: bool
Indicates if listing with versions included is supported.
list_with_deleted: bool
Indicates if listing with deleted files included is supported.
presign: bool
Indicates if presigned URL generation is supported.
presign_read: bool
Indicates if presigned URLs for read operations are supported.
presign_stat: bool
Indicates if presigned URLs for stat operations are supported.
presign_write: bool
Indicates if presigned URLs for write operations are supported.
presign_delete: bool
Indicates if presigned URLs for delete operations are supported.
Indicate if the operator supports shared access.
Trait Implementations§
Source§impl Clone for Capability
impl Clone for Capability
Source§fn clone(&self) -> Capability
fn clone(&self) -> Capability
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more