Struct Backend

Source
pub struct Backend<S: Adapter> { /* private fields */ }
Expand description

Backend of kv service. If the storage service is one k-v-like service, it should implement this kv Backend by right.

Backend implements one general logic on how to read, write, scan the data from one kv store efficiently. And the Adapter held by Backend will handle how to communicate with one k-v-like service really and provides a series of basic operation for this service.

OpenDAL developer can implement one new k-v store backend easily with help of this Backend.

Implementations§

Source§

impl<S> Backend<S>
where S: Adapter,

Source

pub fn new(kv: S) -> Self

Create a new kv backend.

Source

pub fn with_root(self, root: &str) -> Self

Configure root within this backend.

Trait Implementations§

Source§

impl<S: Adapter> Access for Backend<S>

Source§

type Reader = Buffer

Reader is the associated reader returned in read operation.
Source§

type Writer = KvWriter<S>

Writer is the associated writer returned in write operation.
Source§

type Lister = HierarchyLister<KvLister<<S as Adapter>::Scanner>>

Lister is the associated lister returned in list operation.
Source§

type Deleter = OneShotDeleter<KvDeleter<S>>

Deleter is the associated deleter returned in delete operation.
Source§

fn info(&self) -> Arc<AccessorInfo>

Invoke the info operation to get metadata of accessor. Read more
Source§

async fn stat(&self, path: &str, _: OpStat) -> Result<RpStat>

Invoke the stat operation on the specified path. Read more
Source§

async fn read(&self, path: &str, args: OpRead) -> Result<(RpRead, Self::Reader)>

Invoke the read operation on the specified path, returns a Reader if operate successful. Read more
Source§

async fn write(&self, path: &str, _: OpWrite) -> Result<(RpWrite, Self::Writer)>

Invoke the write operation on the specified path, returns a written size if operate successful. Read more
Source§

async fn delete(&self) -> Result<(RpDelete, Self::Deleter)>

Invoke the delete operation on the specified path. Read more
Source§

async fn list(&self, path: &str, args: OpList) -> Result<(RpList, Self::Lister)>

Invoke the list operation on the specified path. Read more
Source§

fn create_dir( &self, path: &str, args: OpCreateDir, ) -> impl Future<Output = Result<RpCreateDir>> + MaybeSend

Invoke the create operation on the specified path Read more
Source§

fn copy( &self, from: &str, to: &str, args: OpCopy, ) -> impl Future<Output = Result<RpCopy>> + MaybeSend

Invoke the copy operation on the specified from path and to path. Read more
Source§

fn rename( &self, from: &str, to: &str, args: OpRename, ) -> impl Future<Output = Result<RpRename>> + MaybeSend

Invoke the rename operation on the specified from path and to path. Read more
Source§

fn presign( &self, path: &str, args: OpPresign, ) -> impl Future<Output = Result<RpPresign>> + MaybeSend

Invoke the presign operation on the specified path. Read more
Source§

impl<S: Clone + Adapter> Clone for Backend<S>

Source§

fn clone(&self) -> Backend<S>

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<S: Debug + Adapter> Debug for Backend<S>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<S> Freeze for Backend<S>

§

impl<S> RefUnwindSafe for Backend<S>
where S: RefUnwindSafe,

§

impl<S> Send for Backend<S>

§

impl<S> Sync for Backend<S>

§

impl<S> Unpin for Backend<S>

§

impl<S> UnwindSafe for Backend<S>
where S: RefUnwindSafe,

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> Instrument for T

Source§

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

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

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ServiceExt for T

Source§

fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>
where Self: Sized,

Apply a transformation to the response body. Read more
Source§

fn decompression(self) -> Decompression<Self>
where Self: Sized,

Decompress response bodies. Read more
Source§

fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using HTTP status codes. Read more
Source§

fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using gRPC headers. Read more
Source§

fn follow_redirects(self) -> FollowRedirect<Self>
where Self: Sized,

Follow redirect resposes using the Standard policy. Read more
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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