Skip to main content

Capability

Struct Capability 

Source
pub struct Capability {
Show 59 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 read_with_suffix: 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_with_recursive: bool, pub delete_max_size: Option<usize>, pub copy: bool, pub copy_with_if_not_exists: bool, pub copy_with_if_match: bool, pub copy_with_source_version: bool, pub copy_can_multi: bool, pub copy_multi_max_size: Option<usize>, pub copy_multi_min_size: Option<usize>, 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_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 Type

OperatorInfo::capability represents all operations available on the current operator, including those implemented through layers.

§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 capability to determine available 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.

§read_with_suffix: bool

Indicates if suffix 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_with_recursive: bool

Indicates if recursive delete operations are supported.

§delete_max_size: Option<usize>

Maximum size supported for single delete operations.

§copy: bool

Indicates if copy operations are supported.

§copy_with_if_not_exists: bool

Indicates if conditional copy operations with if-not-exists are supported.

§copy_with_if_match: bool

Indicates if conditional copy operations with if-match are supported.

§copy_with_source_version: bool

Indicates if copy operations from a specific source version are supported.

§copy_can_multi: bool

Indicates if copy operations can be split into multiple server-side tasks.

§copy_multi_max_size: Option<usize>

Maximum size supported for segmented copy tasks.

§copy_multi_min_size: Option<usize>

Minimum size required for segmented copy tasks.

§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_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.

§shared: bool

Indicate if the operator supports shared access.

Trait Implementations§

Source§

impl Clone for Capability

Source§

fn clone(&self) -> Capability

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Capability

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Capability

Source§

fn default() -> Capability

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Capability

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Capability

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for Capability

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> MaybeSend for T
where T: Send,

§

impl<T> MaybeSend for T
where T: Send,