Skip to main content

JoinBlockStorage

Struct JoinBlockStorage 

Source
pub struct JoinBlockStorage<S, R> { /* private fields */ }
Expand description

Joins multiple block storages together. Write operations will be always delegated to the first storage (which passed to new). Read operations starts with the last up to the first.

Implementations§

Source§

impl<S, R> JoinBlockStorage<S, R>
where S: BlockStorage + 'static, R: ExtendedBlockStorage + 'static,

Source

pub fn new(next: S, read: Vec<R>) -> Self

Trait Implementations§

Source§

impl<S, R> BlockStorage for JoinBlockStorage<S, R>
where S: BlockStorage + 'static, R: ExtendedBlockStorage,

Source§

fn get<'life0, 'life1, 'async_trait>( &'life0 self, cid: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Result<Block, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Returns a block from storage.
Source§

fn set<'life0, 'async_trait>( &'life0 self, block: Block, ) -> Pin<Box<dyn Future<Output = Result<Cid, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Inserts a block into storage.
Source§

fn remove<'life0, 'life1, 'async_trait>( &'life0 self, cid: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Remove a block.
Source§

fn stat<'life0, 'life1, 'async_trait>( &'life0 self, cid: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Result<BlockStat, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Stat a block.
Source§

fn max_block_size(&self) -> usize

Maximum accepted block size.
Source§

impl<S, R> BlockStorageContentMapping for JoinBlockStorage<S, R>

Source§

fn is_content_mapped<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Whether the mapping is active.
Source§

fn to_plain<'life0, 'life1, 'async_trait>( &'life0 self, mapped: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Option<Cid>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Convert the mapped Cid to an plain storage Cid.
Source§

fn to_mapped<'life0, 'life1, 'async_trait>( &'life0 self, plain: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Option<Cid>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Convert the plain storage Cid to a mapped Cid.
Source§

fn insert_mappings<'life0, 'async_trait>( &'life0 self, mappings: BTreeSet<MappedCid>, ) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Insert mappings explicitly into storage.
Source§

impl<S, R> BlockStorageStoreParams for JoinBlockStorage<S, R>
where S: BlockStorage + BlockStorageStoreParams + 'static, R: ExtendedBlockStorage + 'static,

Source§

impl<S: Clone, R: Clone> Clone for JoinBlockStorage<S, R>

Source§

fn clone(&self) -> JoinBlockStorage<S, R>

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, R> CloneWithBlockStorageSettings for JoinBlockStorage<S, R>

Source§

impl<S: Debug, R: Debug> Debug for JoinBlockStorage<S, R>

Source§

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

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

impl<S, R> ExtendedBlockStorage for JoinBlockStorage<S, R>
where S: ExtendedBlockStorage + 'static, R: ExtendedBlockStorage + 'static,

Source§

fn set_extended<'life0, 'async_trait>( &'life0 self, block: ExtendedBlock, ) -> Pin<Box<dyn Future<Output = Result<Cid, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Inserts a block into storage.
Source§

fn exists<'life0, 'life1, 'async_trait>( &'life0 self, cid: &'life1 Cid, ) -> Pin<Box<dyn Future<Output = Result<bool, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Test if a Cid exists. Read more
Source§

fn clear<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Clear the storage by removing all entries.

Auto Trait Implementations§

§

impl<S, R> Freeze for JoinBlockStorage<S, R>

§

impl<S, R> RefUnwindSafe for JoinBlockStorage<S, R>

§

impl<S, R> Send for JoinBlockStorage<S, R>
where S: Sync + Send, R: Sync + Send,

§

impl<S, R> Sync for JoinBlockStorage<S, R>
where S: Sync + Send, R: Sync + Send,

§

impl<S, R> Unpin for JoinBlockStorage<S, R>

§

impl<S, R> UnsafeUnpin for JoinBlockStorage<S, R>

§

impl<S, R> UnwindSafe for JoinBlockStorage<S, R>

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> BlockStorageExt for T
where T: BlockStorage + ?Sized,

Source§

async fn get_value<T, L>(&self, link: &L) -> Result<T, StorageError>
where T: Send + Sync + DeserializeOwned, L: Linkable<T> + Send + Sync,

Get value from link.
Source§

async fn get_value_or_default<T>( &self, link: &OptionLink<T>, ) -> Result<T, StorageError>

Get value or default from link.
Source§

async fn get_value_or_none<T>( &self, link: &OptionLink<T>, ) -> Result<Option<T>, StorageError>
where T: Send + Sync + DeserializeOwned,

Get value or default from link.
Source§

async fn set_value<T>(&self, value: &T) -> Result<Link<T>, StorageError>
where T: Send + Sync + Serialize,

Create link for value.
Source§

async fn get_deserialized<T>(&self, item: &Cid<64>) -> Result<T, StorageError>
where T: Send + Sync + DeserializeOwned,

Get deserialized value.
Source§

async fn set_serialized<T>(&self, value: &T) -> Result<Cid<64>, StorageError>
where T: Send + Sync + Serialize,

Set serialized value.
Source§

async fn get_default<T>( &self, item: &Option<Cid<64>>, ) -> Result<T, StorageError>

Get deserialized value.
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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> 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> 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.
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> AnyBlockStorage for T
where T: BlockStorage + Clone + 'static,