Struct opendal::operator_futures::OperatorFuture

source ·
pub struct OperatorFuture<I, O, F: Future<Output = Result<O>>> { /* private fields */ }
Expand description

OperatorFuture is the future generated by Operator.

The future will consume all the input to generate a future.

§NOTES

This struct is by design to keep in crate. We don’t want users to use this struct directly.

Implementations§

source§

impl<F: Future<Output = Result<Metadata>>> OperatorFuture<OpStat, Metadata, F>

source

pub fn if_match(self, v: &str) -> Self

Set the If-Match for this operation.

source

pub fn if_none_match(self, v: &str) -> Self

Set the If-None-Match for this operation.

source

pub fn version(self, v: &str) -> Self

Set the version for this operation.

source§

impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(OpStat, Duration), PresignedRequest, F>

source

pub fn override_content_disposition(self, v: &str) -> Self

Sets the content-disposition header that should be sent back by the remote read operation.

source

pub fn override_cache_control(self, v: &str) -> Self

Sets the cache-control header that should be sent back by the remote read operation.

source

pub fn override_content_type(self, v: &str) -> Self

Sets the content-type header that should be sent back by the remote read operation.

source

pub fn if_match(self, v: &str) -> Self

Set the If-Match of the option

source

pub fn if_none_match(self, v: &str) -> Self

Set the If-None-Match of the option

source§

impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(OpRead, Duration), PresignedRequest, F>

source

pub fn override_content_disposition(self, v: &str) -> Self

Sets the content-disposition header that should be sent back by the remote read operation.

source

pub fn override_cache_control(self, v: &str) -> Self

Sets the cache-control header that should be sent back by the remote read operation.

source

pub fn override_content_type(self, v: &str) -> Self

Sets the content-type header that should be sent back by the remote read operation.

source

pub fn if_match(self, v: &str) -> Self

Set the If-Match of the option

source

pub fn if_none_match(self, v: &str) -> Self

Set the If-None-Match of the option

source§

impl<F: Future<Output = Result<PresignedRequest>>> OperatorFuture<(OpWrite, Duration), PresignedRequest, F>

source

pub fn content_type(self, v: &str) -> Self

Set the content type of option

source

pub fn content_disposition(self, v: &str) -> Self

Set the content disposition of option

source

pub fn cache_control(self, v: &str) -> Self

Set the content type of option

source§

impl<F: Future<Output = Result<Buffer>>> OperatorFuture<(OpRead, OpReader), Buffer, F>

source

pub fn if_match(self, v: &str) -> Self

Set the If-Match for this operation.

source

pub fn if_none_match(self, v: &str) -> Self

Set the If-None-Match for this operation.

source

pub fn version(self, v: &str) -> Self

Set the version for this operation.

source

pub fn executor(self, executor: Executor) -> Self

Set the executor for this operation.

source

pub fn range(self, range: impl RangeBounds<u64>) -> Self

Set the range header for this operation.

source

pub fn concurrent(self, concurrent: usize) -> Self

Set the concurrent read task amount.

source

pub fn chunk(self, chunk_size: usize) -> Self

Set the chunk size for this operation.

source§

impl<F: Future<Output = Result<Reader>>> OperatorFuture<(OpRead, OpReader), Reader, F>

source

pub fn version(self, v: &str) -> Self

Set the version for this operation.

source

pub fn concurrent(self, concurrent: usize) -> Self

Set the concurrent read task amount.

source

pub fn chunk(self, chunk_size: usize) -> Self

Set the chunk size for this reader.

source

pub fn gap(self, gap_size: usize) -> Self

Set the gap size for this reader.

source§

impl<F: Future<Output = Result<()>>> OperatorFuture<(OpWrite, OpWriter, Buffer), (), F>

source

pub fn append(self, v: bool) -> Self

Set the append mode of op.

If the append mode is set, the data will be appended to the end of the file.

§Notes

Service could return Unsupported if the underlying storage does not support append.

source

pub fn chunk(self, v: usize) -> Self

Set the buffer size of op.

If buffer size is set, the data will be buffered by the underlying writer.

§NOTE

Service could have their own minimum buffer size while perform write operations like multipart uploads. So the buffer size may be larger than the given buffer size.

source

pub fn concurrent(self, v: usize) -> Self

Set the maximum concurrent write task amount.

source

pub fn cache_control(self, v: &str) -> Self

Set the content type of option

source

pub fn content_type(self, v: &str) -> Self

Set the content type of option

source

pub fn content_disposition(self, v: &str) -> Self

Set the content disposition of option

source

pub fn executor(self, executor: Executor) -> Self

Set the executor for this operation.

source

pub fn if_none_match(self, s: &str) -> Self

Set the If-None-Match for this operation.

source

pub fn if_not_exists(self, b: bool) -> Self

Set the If-Not-Exist for this operation.

source

pub fn user_metadata( self, data: impl IntoIterator<Item = (String, String)>, ) -> Self

Set the user defined metadata of the op

§Notes

we don’t need to include the user defined metadata prefix in the key every service will handle it internally

source§

impl<F: Future<Output = Result<Writer>>> OperatorFuture<(OpWrite, OpWriter), Writer, F>

source

pub fn append(self, v: bool) -> Self

Set the append mode of op.

If the append mode is set, the data will be appended to the end of the file.

§Notes

Service could return Unsupported if the underlying storage does not support append.

source

pub fn chunk(self, v: usize) -> Self

Set the chunk size of op.

If chunk size is set, the data will be chunked by the underlying writer.

§NOTE

Service could have their own limitation for chunk size. It’s possible that chunk size is not equal to the given chunk size.

For example:

  • AWS S3 requires the part size to be in [5MiB, 5GiB].
  • GCS requires the part size to be aligned with 256 KiB.

The services will alter the chunk size to meet their requirements.

source

pub fn concurrent(self, v: usize) -> Self

Set the maximum concurrent write task amount.

source

pub fn cache_control(self, v: &str) -> Self

Set the content type of option

source

pub fn content_type(self, v: &str) -> Self

Set the content type of option

source

pub fn content_disposition(self, v: &str) -> Self

Set the content disposition of option

source

pub fn executor(self, executor: Executor) -> Self

Set the executor for this operation.

source

pub fn user_metadata( self, data: impl IntoIterator<Item = (String, String)>, ) -> Self

Set the user defined metadata of the op

§Notes

we don’t need to include the user defined metadata prefix in the key. every service will handle it internally

source§

impl<F: Future<Output = Result<()>>> OperatorFuture<OpDelete, (), F>

source

pub fn version(self, v: &str) -> Self

Change the version of this delete operation.

source§

impl<F: Future<Output = Result<Vec<Entry>>>> OperatorFuture<OpList, Vec<Entry>, F>

source

pub fn limit(self, v: usize) -> Self

The limit passed to underlying service to specify the max results that could return per-request.

Users could use this to control the memory usage of list operation.

source

pub fn start_after(self, v: &str) -> Self

The start_after passes to underlying service to specify the specified key to start listing from.

source

pub fn recursive(self, v: bool) -> Self

The recursive is used to control whether the list operation is recursive.

  • If false, list operation will only list the entries under the given path.
  • If true, list operation will list all entries that starts with given path.

Default to false.

source

pub fn version(self, v: bool) -> Self

The version is used to control whether the object versions should be returned.

  • If false, list operation will not return with object versions
  • If true, list operation will return with object versions if object versioning is supported by the underlying service

Default to false

source§

impl<F: Future<Output = Result<Lister>>> OperatorFuture<OpList, Lister, F>

source

pub fn limit(self, v: usize) -> Self

The limit passed to underlying service to specify the max results that could return per-request.

Users could use this to control the memory usage of list operation.

source

pub fn start_after(self, v: &str) -> Self

The start_after passes to underlying service to specify the specified key to start listing from.

source

pub fn recursive(self, v: bool) -> Self

The recursive is used to control whether the list operation is recursive.

  • If false, list operation will only list the entries under the given path.
  • If true, list operation will list all entries that starts with given path.

Default to false.

source

pub fn version(self, v: bool) -> Self

The version is used to control whether the object versions should be returned.

  • If false, list operation will not return with object versions
  • If true, list operation will return with object versions if object versioning is supported by the underlying service

Default to false

Trait Implementations§

source§

impl<I, O, F> IntoFuture for OperatorFuture<I, O, F>
where F: Future<Output = Result<O>>,

§

type Output = Result<O, Error>

The output that the future will produce on completion.
§

type IntoFuture = F

Which kind of future are we turning this into?
source§

fn into_future(self) -> Self::IntoFuture

Creates a future from a value. Read more

Auto Trait Implementations§

§

impl<I, O, F> Freeze for OperatorFuture<I, O, F>
where I: Freeze,

§

impl<I, O, F> !RefUnwindSafe for OperatorFuture<I, O, F>

§

impl<I, O, F> Send for OperatorFuture<I, O, F>
where I: Send,

§

impl<I, O, F> Sync for OperatorFuture<I, O, F>
where I: Sync,

§

impl<I, O, F> Unpin for OperatorFuture<I, O, F>
where I: Unpin,

§

impl<I, O, F> !UnwindSafe for OperatorFuture<I, O, F>

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
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

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

§

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>,

§

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

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

§

fn is_within(&self, b: &G2) -> bool

source§

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